7. 문자 인코딩
1. 한글 깨짐 현상
서버에서 클라이언트로의 응답 메시지 전송 과정에서 기본적으로 포함해야 할 내용
- 보내는 데이터의 타입 -
text/html인지,json인지 등 - 인코딩 할 문자셋(Charset) 정보 -
UTF-8인지,cp949인지 등
작성자(개발자)가 별도로 명시하지 않을 경우 응답 형식의 기본값으로 처리됨
- 기본 문서 타입 :
text/html - 문자셋 정보 :
8859_1(한글 지원 x)
따라서 다음과 같이 ???가 나오지 않게 하기 위해서는 응답 정보 헤더에 데이터의 문서 타입과 한글을 지원하는 문자셋을 설정해야함
resp.setContentType("text/html;charset=UTF-8");2. 한글 깨짐 현상 처리
html에서 <meta charset = "UTF-8"> 확인
2-1. 한글이 깨지는 이유

같은 내용의 문자의 표현 방식이 프로그램 처리 진행 과정에서 매번 바뀌기 때문에 문자가 깨지게 됨
한글의 처리 방식은 GET과 POST가 서로 다름,
왜냐하면 질의 문자열의 전달 위치가 다르기 때문
→ GET은 요청 정보의 Header에, POST는 Body에 포함됨
2-2. POST 방식의 한글 처리
Servlet API에서 한글 처리용 메서드를 제공
HttpServletRequest.java
request.setCharacterEncoding("UTF-8"); // UTF8로 인코딩 처리요청정보의 몸체에 있는 문자열들을 인코딩해주는 메서드, POST 방식에서는 데이터가 요청 정보의 몸체에 있음
2-3. GET 방식의 한글 처리
POST방식에서 사용한 setCharacterEncoding()는 요청 정보의 Body부분에 있는 정보만 인코딩해주기 때문에 GET방식에서는 다른 접근으로 인코딩 처리를 해야함
2-3-1. 클라이언트에서 인코딩하는 문자 코드
<head>태그 내에<meta charset="UTF-8">지정- Eclipse 환경 설정 window → preferences → web → html files → 원하는 문자코드 지정
2-3-2. 서버에서 인코딩하는 문자 코드
톰캣 8이상 버전의 기본 문자코드는 UTF-8이기 때문에 수정하지 않아도 됨
Last updated on