2010년 2월 22일 월요일

MS949 로 한글 엔코딩

보통의 경우에는 euc-kr 또는 ksc5601 로 한글엔코딩을 해주면 문제가 없지만.

아주 특별한경우(?)에는 MS949로 한글엔코딩을 해주어야만 한다.

대개의 경우에는 로그창에 엔코딩되지 않은 문장를 찍어보면

#$%... 와 같은 특수문자형식으로 문자열이 찍혀지지만,

#12345;#67890; . . . . 과 같은 일정한 배열의 형식으로 문자열이 찍히는 경우가 있다.

이런형식의 문자열의 경우에는 euc-kr이나 ksc5601의 변환이 적용이 되질 않는다.

그것에 대한 정확한 설명은.. 지식이 부족한 탓에 할수가 없음이 안타깝지만

개인적인 생각으론 기본적인 문자열의 형식이 다르기 때문이라고 생각된다.

그럼 MS949 라는 형식을 통해 한글엔코딩 하는 방식을 알아보자.

========================================================================================

page1 ---> page2 로 한글파라미터를 넘기는 경우.

대부분 JSP페이지 상단에 <%@ page contentType="text/html;charset=euc-kr" %>이라는 코드가

삽입이 된다.

이것을 page1에서는 <%@ page contentType="text/html;charset=MS949" %>를 삽입하고,

page2 에서는 <%@ page pageEncoding="MS949" %> 를 삽입하여 기존의 코드를 대체한다.

그런후 page2에서 받은 파라미터를 아래와 같이 euc-kr이나 ksc5601로 한글엔코딩을 하면

String str = new String(param.getBytes("8859_1") ,"ksc5601");

정상적인 한글로 문자가 변환된다.

 

댓글 없음:

댓글 쓰기