JAVA & Web

톰캣 정적 리소스 파일(js,css) 한글 깨지는 문제

스마트큐브 2023. 6. 15. 10:09

환경 : JDK17 , Tomcat9 
서버 : CentOs , Bash  LANG=ko_KR.euckr

모든 스프링 메이븐  프로젝트내의 파일이 UTF-8 로 되어있고 JSP  인코딩 Html charset 선언 또한 UTF-8

URI 요청에 대한 스프링 CharsetEncoding 필터 또한 UTF-8 로 된 상황에서 

꼭 JS 와 CSS 와 같은  정적 파일만 한글이 깨지는 상황. 

크롬 개발자 도구로 네트워크 모니터링 해보면 마치 UTF-8로 읽는것처럼 보이지만 한글이 깨진다.

 

똑같은 조건에서 톰캣 7버전으로 사용할때는 문제가 없었는데 톰캣9에서만 문제가 되길래 나역시 톰캣의 버그인가 했더니  구글링에서 명확하게 답변을 주고 있었다. 

https://bz.apache.org/bugzilla/show_bug.cgi?id=63985

 

63985 – Tomcat 9 does not read UTF-8 files with no bom correctly

Status: RESOLVED WONTFIX Alias: None Product: Tomcat 9 Classification: Unclassified Component: Catalina (show other bugs) Version: 9.0.x Hardware: PC All Importance: P2 normal (vote) Target Milestone: ----- Assignee: Tomcat Developers Mailing List URL: Key

bz.apache.org


문제는 해당 JS 파일이  BOM(Byte Order Mark)는 없어서 톰캣이 ISO8859 형태로 읽어서 생기는 문제라고 한다. 

그래서 NotePad++ 로  BOM 을 추가하니 한글이 정상적으로 보인다.! 굿굿!!