코딩/JAVA

윈도우 서버에 SpringBoot 배포시 로그에 한글 깨짐 설정

GU 2023. 12. 18. 16:58
반응형

사용하는 환경 springboot  java 17 

                        logback 

 

우선 cmd에서 jar를 사용할때 보통의 방법으로는 

java -jar "해당파일의 경로 및 파일 이름"

 

이렇게 사용할 것이다.

내가 이렇게 계속 사용하면서 파일이 계속 ansi가 되길래 이런 저런 방법을 사용하게 되었다.

실행 초에는 utf-8로 나오다가 req를 보내면 ansi로 설정 된다.

처음 사용한 방법은 logback의 log 환경설정을

해당 방법처럼 사용하였지만 

<charset>UTF-8</charset>

 

별 소득없이 끝났었다.

 

두번째로 해당 한글이 깨지는 위치를 확인했었다.

dofilter의 response와 request가 계속 깨져서 나오고 API에서 나오는 log들은 또 정상적인 한글로 나와서 logfilter를 의심하게 되었는데, 이마저도 소득없이 끝났었다.

 

 

세번째의 방법으로 넘어와서는 intelij에서의 한글 깨짐의 원인은 3가지의 원인이 있을 수 있는데,

1. intelij의 파일 세팅에서 utf-8로 바꾸기

 

이것도 소득이 없었다.

다만 properties의 설정이 UTF-8로 바뀌었다는 점

 

2.내장 톰켓에 인코딩 하기 방법

   근데 나는 인텔리 제이에 톰캣을 연동 안했기 때문에 건너 뛰었다.

 

 

3. -Dfile.encoding=UTF-8을 사용하여 서비스 실행하기

    여기서 가상환경(vmOption)이나 tomcat에  계속 -Dfile.encoding=UTF-8을 추가하라고 해서 사용한 방법이다.

 

cmd로 명령어를 입력해 해당 파일을 실행해보았을때 정상적으로 한글이 나오는것을 확인 할 수 있었다.

 

한글깨짐 명령

 

 

 

949는 인코딩 euc-kr이다.

cmd는 utf-8기준으로 만들어 진것이 아니기 때문에 코드 페이지를 변경할 필요가 있다.

해당 방법은 임시로 변경하는 방법이다.

    - chcp 65001을 입력하고 enter

    -  java -jar -Dfile.encoding=UTF-8 "파일 경로\파일이름"

 

cmd로 utf-8 설정 후 정상적인 화면
utf-8 설정(&nbsp; -Dfile.encoding=UTF-8&nbsp; ) 안했을 경우 생기는 오류

 

반응형