[에러해결] 인텔리제이 한글 깨짐 인코딩 설정 ISO-8859-1 -> UTF-8

김재훈·2025년 1월 5일
0

SpringBoot

목록 보기
6/6

이 머스테치 코드를 띄우기 위한 Controller 코드를 작성했다.

경로와 확장자는 index로 반환한 것을 경로/index.mustache로 viewResolver가 처리해준다.

다만 문제가 생겼다

나는 분명

스프링부트로 시작하는 웹 서비스

이게 뜨길 윈했다.

네?

????? ? ???

요 ?

Content-Type을 확인해보니 UTF-8이 아니라 ISO-8859-1이다.

우선

[File] - [Settings] - [Editor] - [File Encodings]
경로로 들어간 후

Global Encoding, Project Encoding, Default encoding for properties files까지 UTF-8로 변경 후 Transparent native-to-ascii conversion까지 체크 해주고 Apply후 OK를 눌러준다.

똑같다.

그럼 다른 설정을 위해

C:\사용자\사용자이름\AppData\Roaming\JetBrains
경로로 접속 후에

Ideal버전을 눌러준다.

그리고 해당 파일을 열어서

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

를 입력해준다.

여기까지 했는데도 안돼서 application.properties의 설정을 추가했다.

application.properties

# Spring Boot 웹 인코딩 설정
spring.web.encoding.charset=UTF-8
spring.web.encoding.enabled=true
spring.web.encoding.force=true
spring.mustache.encoding=UTF-8
server.tomcat.uri-encoding=UTF-8
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true
spring.mvc.locale=ko_KR
spring.mvc.locale-resolver=fixed

뭐가 문제인 지 몰라서 UTF-8 인코딩 관련 코드들은 다 긁어왔다.

잘 된다.

결론부터 말하자면 나는 나머지는 저 위에 코드중 나머지는 다 주석처리하고

server.servlet.encoding.force=true

이 코드 한 줄 추가한 것 만으로 잘 된다.

응답 인코딩이 기본값이 ISO-8859-1로 설정되어 있었을 가능성이 높을 것 같다.

server.servlet.encoding.force=true는 HTTP 요청과 응답에 UTF-8 인코딩을 강제로 적용하는 코드이다. 생각보다 인코딩에 시간을 많이 뺏기는데 그런 분들에게 도움이 되면 좋겠다.

profile
사랑페페집사

0개의 댓글