이클립스 톰캣 구동 오류 : Invalid byte 1 of 1-byte UTF-8 sequence

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 파일을 수정해보고

하는 시도를 해봄이 난감한 상황에 여러모로 유효할 듯 하여 포스팅 해둔다.