엄지월드

[jsp] response 한글 깨짐 현상 (UTF-8 설정 반영 안됨) 본문

java/JSP

[jsp] response 한글 깨짐 현상 (UTF-8 설정 반영 안됨)

킨글 2022. 12. 4. 17:57

Servlet에서 UTF-8을 인코딩 해주었음에도 불구하고 Reponse에서 ISO-8859-1로 표시되는 기이한 현상이 있었다.

 

그래서 아래 항목들을 변경해주면서 3시간동안 삽질하였다. 

- Preferences > Editor > File Encoding 에서 인코딩 UTF-8로 변경

- jsp 파일 내에 contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" 설정

- Help > Edit Custom VM Options에서 -Dfile.encoding=UTF-8 를 추가

- Tomcat EditConfigure에서 VM option을 -Dfile.encoding=UTF-8로 설정

- Tomcat/conf 폴더에 있는 server.xml에서 URIEncoding="UTF-8" 설정 

 

결국에는 아래 코드와 같이 EncodingFilter 부분의 response에서 UTF-8로 변경해주었더니, 한글이 정상적으로 표시되었다. 

(reponse가 utf-8로 되었다)

 

HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=UTF-8");

 

 

실수를 했던 이유는 당연히 View로 데이터가 전달되기 전에 UTF-8로 설정을 해주면 인코딩이 적용될 것이라 생각을 했었다. 

하지만 실제로는 Filter에서 먼저 UTF-8로 설정을 해주어야 한다는 것을 알 수 있었다. 

 

 

 

 

 

 

 

'java > JSP' 카테고리의 다른 글

jsp eclipse 템플릿 변경  (0) 2022.12.14
'\ufeff'  (0) 2022.12.05
@WebServlet  (0) 2022.07.19
JSP에서 Ajax Response UTF-8 한글 깨짐 현상  (0) 2022.07.18
okhttp를 활용한 RestAPI 호출 방법  (2) 2022.07.12
Comments