본문 바로가기

Servlet&JSP

019 - 한글 입력 문제

한글이 전달되는 것을 서버에서 받지 못하는 문제

 

1. 서버쪽에서 문서를 만들면서 한글이 깨진 것인지

2. 전달한 내용에서 한글이 깨져서 전달된 것인지

 

1은 지난번에 해결했으니 아마 문제가 발생한 것은 2의 경우라 판단.

 

 

 

멀티 바이트 문자 전송문제 : 사용자로부터 값 입력 받아서 전송하기

UTF-8은 기본적으로 멀티 바이트 문자.

영문자는 문자 1개당 1바이트. 한글은 문자 1개당 2바이트.

 

톰캣은 Encoding된 문자를 UTF-8로 인식하는 것이 아닌, ISO-8859-1의 인코딩 방식으로 인식함.

 

즉, 읽어들이는 과정에서 UTF-8로 읽으라고 요청을 해야 함.

 

 

 

 

방법1

서버 설정에 손댈 수 없는 경우

Servlet => request.setCharacterEncoding("UTF-8");

//입력도구에 '사용자가 전달한 값을 읽어들이기 전에 UTF-8로 읽어들이겠다'는 설정을 하는 것

 

방법2

만약 이게 귀찮다면 톰캣의 환경설정에서 server.xml에서 <= 일반적으로 이 방법은 지양함.

<Connector port="8080"

                protocol="HTTP/1.1"

                connectionTimeout="20000"

                redirectPort="8443"

                URIEncoding="UTF-8"  />