2019. 7. 2. 10:17ㆍ모두모두 개발자다요/JAVA
"Invalid byte 1 of 1-byte UTF-8 sequence"
"1은(는) 1바이트 UTF-8 시퀀스에 대해 부적합한 바이트입니다."
톰캣 구동 중에 읽어들이는 xml 파일 중에 어딘가에 들어가 있는 "한글" 문자열이 깨져 읽혀서 발생하는 오류 메시지라고 판단하면 된다.
여기서 "깨져서" 가 아니고 "깨져 읽혀서" 라고 표현한 이유는 실제로 해당 설정 파일 (첫 빠따로 server.xml) 을 이클립스에서 열어 보아도 눈으로는 도저히!! 깨진 한글 문자 부분이 보이지 않았다는 점을 강조하고 싶어서다.
<?xml version="1.0" encoding="UTF-8"?>
...
<!-- 안 깨졌는데? -->
...
(모든 한글 주석 문자열이 정상적으로 표시되는 것을 확인했다.)
그래도 혹시 모르니 모든 한글 문자열을 삭제하고 다시 톰캣 구동..
결과는 정상 구동!! (?????)
그러나, 한글 주석 코드를 꼭 써야겠다는 의지를 포기하지 못하여, 다른 해법을 찾아 조치해본 결과
<?xml version="1.0" encoding="EUC-KR"?>
...
<!-- 멀쩡해보이는데??-->
...
위와 같이 아예 "EUC-KR" 으로 바꿔서 적용해봤더니 이 경우에도 정상 구동!! (?????)
그러나, 반드시 UTF-8 인코딩 설정으로 써야겠다는 의지를 포기하지 못하여, 다른 방법을 더 찾아본 결과
이클립스 설정 파일 "eclipse.ini" 파일에 "-Dfile.encoding=UTF-8" 라고 옵션을 추가한 후에 이클립스 재기동 후 톰캣을 실행해보았다.
(출처 : https://enspring.tistory.com/590)
결과는 정상 구동!! (그래도 여전히 머릿속은 ?????)
명쾌한 이해까지는 도달하지 못했으나, 일단 "Invalid byte 1 of 1-byte UTF-8 sequence" 메시지를 만나게 된다면
1. xml 안에 들어간 한글 문자열 깨지는지 확인해보고
2. 혹시나 안 깨져 보여도 다른 에디터 프로그램으로도 열어서도 안 깨지는지 비교해보고
3. 한글 문자열을 삭제 후 구동해보고
4. "EUC-KR" 으로 변경해보고
5. 위와 같이 eclipse.ini 파일을 수정해보고
하는 시도를 해봄이 난감한 상황에 여러모로 유효할 듯 하여 포스팅 해둔다.
'모두모두 개발자다요 > JAVA' 카테고리의 다른 글
Spring MVC - RedirectAttributes (Spring 3.1 이상) (0) | 2018.09.23 |
---|---|
리스트 (또는 배열) 순서 섞기 (shuffle) (0) | 2018.03.27 |
jQuery.ajax() 크로스도메인(crossdomain) 허용 설정 in java web application (0) | 2017.09.18 |
이클립스 Search 결과 파일 새 창으로 오픈 설정 (0) | 2017.06.27 |
maven spring-boot run (port 옵션) (0) | 2017.03.30 |