05.JSP2009. 7. 14. 10:57
반응형

J2EE에서 한글

공식처럼 대부분의 사이트가 EUC-KR 인코딩을 사용한다. 그런데 EUC-KR이 올바른 한글 인코딩일까?

결론은 아니다. EUC-KR로는 한글을 모두 표현할 수 가 없다. 똠방각하, 펲시콜라 이런 글자가 안되는 한글 페이지라니... EUC-KR에서는 ?방각하 ?시콜라 처럼 보여진다. google에서 펲시콜라를 입력해보라, 아니 이 블로그만 보더라도... 어처구니없이 외국사이트보다도 세종대왕의 자손들이 만들고 운영하는 사이트들에서 한글이 제대로 쓰여지고 있지 않다.
완성형, 조합형으로까지 거슬러 올라가 전산상의 한글 구현에 대해서 구구절절 읊지 않더라도 한글 자모로 구성 가능한 문자가 표현되지 않는 character set이나 encoding을 사용하는 것은 올바른 습관이 아니라고 본다.

여타의 기술 자료나 QnA 등에서 그래도 앞서나간 사람들이 jsp한글...tomcat 한글... 이런 글에 몽땅 EUC-KR로 기술하고있는 것은 문제라고 생각한다.

마땅히 한글 표현이 우수한 UTF-8를 사용해야한다. 한글 뿐만 아니라 국제화를 고려한다면 더더욱.

Tomcat에서 contentType을 UTF-8으로 하는 경우 jsp 파일은 UTF-8인콩딩으로 작성되어야한다. Eclipse를 사용한다면 문서의 Properties에서 수정할 수 있다. UTF-8인경우 한글 출력 및 post로 submit된 한글 값도 문제가 없지만 get 으로 전송된 파라미터 값은 한글이 깨진다.

Tomcat의 url decoding 과정에서 한글 처리에 문제가 있다.

String qry = request.getQueryString();
msg = URLDecoder.decode(qry.split("msg=")[1],"UTF-8");
out.println(msg)

처럼 직접 url decoding을 하면 get 전송된 한글도 정상적으로 출력된다.

request.getParameter()에서 UTF-8으로 decoding되지 않는 문제를 ... 음. 시간이 날 때 좀 더 파헤쳐보면 해법을 찾을 수 있을 거 같다.
꼭 찾아야지.
Posted by 1010