왠지 골치아픈 한글처리

image

Web.xml



image

HanServlet.java


주소창에 http://localhost:8080/tp/han?name=가나다

하였을 때 콘솔창과 브라우져에 가나다 가 찍히도록 할 것이다.

(get 방식)


image

image


get방식으로 처리를 하였을 때…

한글이 깨짐을 알 수 있다.

파폭에서는 보기->문자인코딩 에서 적당한걸 선택 해주면 안깨지고 나오기는 한다.

콘솔창에서는 어쨌거나 깨지는 것을 알 수 있다.


웹에서의 기본적인 전송 입력 방식은 iso-8859-1 이다.

이것은 라틴어 캐릭터 셋이므로 한글이 제대로 표시되지 않는다.

그러므로 변환을 해 주어야 함


Iso-8859-1 로 들어온 것을…

Euc-kr (조합형) 로 바꾸어주어야 깨지지 않는다.




byte[] b = name.getBytes(“iso-8859-1”); // iso-8859-1 로 들어온 것을 byte단위로 쪼갠다.

name = new String(b, “euc-kr”); // 쪼갠것을 euc-kr 로 바꾼다.



image


image


first 는 한글처리 안한 것… second 는 한글처리 한 것이다.

second를 보자

콘솔창에서 보면 한글이 깨지지 않고 잘 나온다.

그러나 브라우져에서는 ??? 라고 나온다.

servlet 단에서는 한글이 제대로 들어오지만 브라우저 단에서는 제대로 표시가 안된다!!!!!!!!!!!!

브라우저의 인코딩옵션을 조절해도 똑같다.


이제 브라우저에서도 잘나오도록 설정을 하자

response.setCharacterEncoding(“euc-kr”);

이건 response를 통해서 한글로 인코딩되게 하라는 것이다. (PrintWriter 이전에 위치해야함)


image


image


ie7 에서는 잘되고, 파폭에서는 아직 깨져서 나오는데 브라우저인코딩옵션을 만져주면 잘됨

익스도 마찬가지고 안나올때는 수동으로(!!!!) 옵션 조절을 해주면됨..

그렇지만 사용자들이 일일이 바꾸어주어야하는 불편이 아직 있으므로…

이를 해결하여보자


response.setContentType("text/html; charset=euc-kr");

멍청한 브라우저가 알아서 인코딩 옵션을 바꾸도록 하는 명령임


image

image


인코딩옵션을 만져주지 않아도~

혼자서도 잘해요~

히밤 캐짜증!!



response.setCharacterEncoding("euc-kr");

(브라우져야 euc-kr 읽어들이셈)            
response.setContentType("text/html; charset=euc-kr");

(멍청한 브라우져쉑히야 인코딩옵션도 euc-kr 로 바꾸셈)

byte[] b = name.getBytes("iso-8859-1");

(iso-8859-1로 들어온걸 바이트 단위로 쪼개겠뜸!)
name = new String(b, "euc-kr");

(쪼갠걸 euc-kr로 바꾸겠뜸!!)


System.out.println("second"+name);
pw.write("second "+name);

정리해봐도 캐짜증 히밤 쾅!!

끗~

03 30, 2009 16:16 03 30, 2009 16:16
iamback 이 작성.

Trackback URL : http://pippen80.cafe24.com/trackback/151

Trackback RSS : http://pippen80.cafe24.com/rss/trackback/151

Trackback ATOM : http://pippen80.cafe24.com/atom/trackback/151


« Prev : 1 : ... 124 : 125 : 126 : 127 : 128 : 129 : 130 : 131 : 132 : ... 251 : Next »