본문 바로가기
프로그래밍/JAVA

[JAVA] charset에 따른 bytes 길이 구하기

by yun5o 2023. 5. 29.

Java에서 문자열의 바이트를 가져와서 문자열을 substring 해주는 기능을 만들었는데

로컬에선 정상적으로 작동하지만 운영에서는 기능이 작동하지 않았습니다.

 

해당오류는 문자열의 바이트를 가져올때 길이가 로컬과 서버가 달라서 발생한 오류입니다.

tempStr.getBytes().length;

 

로컬은 utf-8인데 서버는 euc-kr 으로 charset이 달라서 발생한 이슈로 utf-8로 인코딩해주면 정상적으로 계산됩니다.

tempStr.getBytes("utf-8").length;
또는
tempStr.getBytes("euc-kr").length;

 

※ 참고

utf-8 : 한글 3바이트 / 영문, 숫자, 공백, 특수문자 1바이트

euc-kr : 한글 2바이트 / 영문, 숫자, 공백, 특수문자 1바이트

댓글