★ IT 꿀팁 저장소/프로그래밍 창고

JAVA 언어에서 문자 메시지 문자열 바이트(Bytes) 계산하면 겪은 문제

느영나영 에세이 2020. 12. 2. 23:06
반응형

문자 메시지를 보내는 기능에 문제가 있었습니다.

 

SMS 발송이 되어야 하는데 LMS 문자로 발송이 되었는데요. 

자바스크립트(Javascript) 언어에서 바이트(Bytes) 숫자와 Java 에서 바이트(Bytes) 숫자 차이가 원인이었습니다. 

 

■ 원인 찾기 

 

무슨 차이일까? 고민은 해보아도 잘 모르겠더라구요. 

그래서, 여러차례 디버깅을 하면서 알게된 이유가 있었습니다. 

 

\r\n 문자 바이트를 확인해 볼게요. 

→ 자바스크립트에서는 1 Bytes 계산됩니다. 

 

 

→ 자바(Java)에서는 2 Bytes 계산 

 

■ 어떻게 보완을 해야 하지?

 

\r\n 문자를 " " 1 Byte 공백으로 치환해 주었습니다. 

 

예시) 

 

원하는 결과를 얻을 수 있었지만, 

개운하지 않은 해법이라는 생각이 듭니다. 

 

조금 더 찾아 보니, 인코딩에 따라 Bytes 계산이 다르다는 내용을 찾게 되었습니다. 

인코딩에 대한 부분은 좀 더 공부가 필요한것 같아 다른 세션에서 다뤄봐야 겠습니다. 

 

 

■ 참고

컴퓨터에서는 보이지는 않지만, 특수문자로 정의하고 있는 부분 존재 

 

 

반응형