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바이트
'프로그래밍 > JAVA' 카테고리의 다른 글
Spring Boot 텍스트 Captcha 적용 방법 (0) | 2024.08.16 |
---|---|
[JAVA] 파일 업로드 이미지 Quality 변경하기 (0) | 2023.02.18 |
[JAVA] 자바8에서 자바11로 버전 변경하기 (0) | 2022.08.16 |
[JAVA] 결제모듈 세션 만료 오류 (0) | 2020.08.24 |
댓글