Back to the Spring

한글 깨짐 Tomcat? Java11? mustache!

Backcoder 2022. 6. 7. 19:59

Project 연습해 보는 중, Tomcat 서버에 올리는 <html> 의 한글이

 

??? 

 

로 깨지는 현상이 발생했다. 

 

구글링을 해보니 

 

공통적인 해결책 :  Encoding 방식 통일 

 

1. 설정 - Encoding - 

UTF-8  로 완전 통일 (Global Encoding, Project Encoding, Default Encoding) 

 

2. Help - edit VM options 

 

-Dfile.encoding=UTF-8
-Dconsole.encoding=UTF-8

 

추가하기 

 

3. Edit configuration - Tomcat server - VM options 

-Dfile.encoding=UTF-8  추가하기  

 

( Tomcat server 는 Configuration 에 보이지 않아서 이것도 검색해보니,  깔아야 한다. 

설정 - plugins - tomcat 검색 해서 깔아주었다.  (smart Tomcat) ) 

 

이 3가지 수행을 하는게 보편적인 해결책이었고, 몇 번이고 시도했으나 실패.

 

구글링을 더 해보니, 

-Duser.language=en

-Duser.region=US  

 언어팩을 아싸리 영어로 맞춰주는 해결책도 있었다. 

Tomcat 이 default 로 한국어로 실행이 되니, (콘솔) 이걸 추가해주면 콘솔창에 영어로 나오는 차이가 있었다. 

(콘솔창의 오류를 해결할만한 해결책) 

 

 

하지만, html 한글이 깨지는 것에 대한 해결책은 아니였다 

 

 

헤메고 헤메이다, 내가 쓰고 있는게 html 이 아니라 mustache 라는걸 뒤늦게 깨닳았고, 

다시 구글링을 해보니 

 

SpringBoot 2.7 버전 과 mustache 가 만나 한글깨짐 이라는 오류를 만들어 내고 있음을 확인했다. 

 

좌절과 환희가 동시에 왔다. 

 

 

해결법은 build.gradle 에 들어가 손수 버전을 2.7.0    => 2.6.8 로 내려줬다. 

 

 

다시 실행해보니 그토록 보고싶던 

 

                          한글 

 

 드디어 web 에 표시된다. 

 

시간을 많이 뺏겼으나,  얻은것도 많다. 쌤쌤이다. 

 

Ps. 해결책 중, java 버전의 문제로, 17 버전을 이용하면 된다는 글도 있어 

java 버전에 대해서도 많이 찾아보게 되었다. 

 

LTS 버전으로 현업에서 아직까지 가장 많이 쓰이고 있는게 java 8 버전 

슬슬 java 11 로 넘어오거나 ( 그런데 11 의 유효기간도 생각보다 오래가지 못한다. ) 

한번에 java17 로 가는게 좋지 않나 하는 추세도 보였다. 

다만, 아직은 현업에서 17을 쓰는 비율은 상당히 적다고 한다.