Posted on 2009/03/19 12:16 | CodeIN/Web



나는 개발을 할 때 주로 "verdana" font를 사용한다
가장 보기 쉽고 이쁘다 ^0^
그런데 JSP공부를 하는데 한글이 깨져서 나오길래 verdana font는 한글 지원이 안되나부다 했는데 그게 아니었다...

아래 소스를 응용하면 한글 깨짐 현상을 없앨 수 있다.

String test="김태정 온 보이스보탈";

test=new String(test.getBytes("8859_1"), "EUC-KR");

System.out.println("test : " + test);

김태정 온 보이스 보탈


<추가 내용>
jsp를 계속 공부하다보니까 계속적으로 한글 문제가 발생된다..
그래서 왜 유니코드를 사용한다는 java에서 이런문제가 발생되는지 궁금하였다...
그런데 이게 한글을 웹으로 전송할 발생되는 문제라는 것을 알게 되었다.

http://cafe.naver.com/jokerx04.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=255

내용을 간단히 정리를 하면은

한글 웹브라우저에서는 KSC5601코드를 기본으로 사용하는데 웹으로 전송(HTTP REQUEST)할 때는 x-www-form-urlencoded 형식으로 인코딩 된다고 한다. 그런데 서블릿은 전송된 문자들이 ISO-8859-1 표준 코드라고 생각한다. 그리고 JAVA에서는 유니코드를 사용하므로 전달된 한글코드를 ISO-8859-1로 인코딩을 한다고 한다. 그래서 웹으로 한글을 전송하게 되면은 무조건 깨진다고 봐야한다.
그래서 우리도 ISO-8859-1 형식의 유니코드로 인코딩된(깨진 상태다)놈을 다시 ISO-8859-1의 바이트 배열로 추출한다. 그 다음에 그놈을 다시 원래의 포맷인 KSC5601 형식으로 변환 해주면 된다. 또 서블릿에서 웹으로 보낼 때도 한글을 ISO-8859-1 형식으로 변환한다. 그래서 이것은 KSC5601 을 사용하는 euc-kr 로 변환해서 전송해야 한다.
이것은 JSP 페이지나 서블릿에 contentType 의 charset 을 "euc-kr" 로 설정해 주기만 하면 된다.

euc-kr 은 한글은 KSC5601 로 표현하고, 영어는 JSC5636을 사용하는 방법인데, 벨 연구소에서 제안한 유닉스 상에서 영어 외의 문자를 표현하는 방법 중에 하나이다. euc-kr 은 Extended UNIX Korea Code 의 약자이다.










참고 사이트
http://blog.daum.net/sowebpro/6952936

 
트랙백 주소 :: http://www.voiceportal.co.kr/415/trackback/
profile image

To be able to do what you want is the freedom, to enjoy what you do is the happiness.

  1. Speed Java - 한동호 저

    Tracked from 김재호의 디지털보단 아날로그 2009/03/27 20:44

    Speed Java - 한동호/엠플래닝 강컴에서 호평들이 많아 이 책을 선택해서 봤는데, 책 이름과 같이 정말 스피드하게 배워나갈 수 있었다. 필요한 부분만 깔끔하게 설명하고 빨리 진행되는 방식이 아주 마음에 든다. 나는 대학시절에 Java 1.4 책을 한 번 본 것이 전부여서 @ 어노테이션이나 for 문 안에서 : 으로 이터레이팅 하는 문법들이 아주 해괴망칙하게 보이곤 했었는데, 이 책에서는 간략하게지만 내가 궁금해 했던 그런 새롭게 추가된 기능들..

옵션
댓글 달기

블로그 이미지
Blog Image
김태정, All on Voiceportal

Voice portal에 대한 정보 공유.

by 김태정
프로필 버튼
프로필 상세보기
블로그롤 정보

Calendar*
«   2010/03   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Comment*
Counter*
Total
554903
Today
268
Yesterday
1203