본문 바로가기

Servlet&JSP

014 - 한글과 콘텐츠 형식 출력하기

한글이 깨지는 이유

1. 서버에서 한글을 지원하지 않는 문자코드로 인코딩한 경우.

웹서버에서 클라이언트로 보내질 때, 기본적으로 단위가 ISO-8859-1 이라는 코딩 방식을 이용.

해당 방식은 1바이트로 쪼개서 전달하기에 물음표로 나온다. (한글은 2바이트씩 묶어서 표현)

"??"

 

2. 서버에서는 UTF-8로 인코딩해서 보냈지만 브라우저가 다른 코드로 잘못 해석한 경우.

인코딩 방식만 설정을 다시 하면 깨질 수도 있고 안 깨질 수도 있음.

"덈뀞"

 

 

 

 

해결하는 방법

사용자가 보내는 코딩 방식을 결정

response.setCharacterEncoding("UTF-8");

 

사용자가 받았을 때 어떻게 해석할 지에 대한 정보를 제공

(클라이언트에게 캐릭터가 UTF-8로 되었다는 것과, 이게 html 문서라는 정보를 제공함.)

response.setContentType("text/html; charset=UTF-8");

 

Content-Type: text/html; charset=UTF-8