# 브라우저 인코딩이 자동으로 한글이 안되는 경우 해결법
euc-kr 이나 ksc5601 을 사용할 경우 브라우저의 한글은 잘 나온다.
대신 확장한글을 표시할 수 없어서 ?? , ?d , ?? 같은 글자는 ? 로 깨어져 나온다.
소스보기를 해도 깨진 상태 그대로다.
MS949 를 사용하면 확장한글이 제대로 소스보기에 나오지만 브라우저의 인코딩이 한글
이 아닌 서유럽 (ISO) 로 자동지정되어서 마우스 오른버튼 메뉴의 인코딩을 통해서
한글로 재지정하는 등의 불필요한 작업이 필요할 경우가 종종 있다.이런 문제의 원인은 Tomcat 의 jsp를 servlet으로 변환하는 과정에서 @page 의
contentType 속성에 지정한 charset 의 인코딩이 적용되기 때문에 euc-kr 이나
ksc5601의 경우 client 로 보내지는 소스 중의 확장한글이 깨어지며, MS949 의 경우
서버쪽에서 확장한글의 처리는 잘 하지만 브라우저에서 소스를 받을 때 header 의
Content-type 이 브라우저가 인식하는 인코딩을 벗어날 경우 Latin-1(ISO-8859-1) 로
자동지정하기 때문이다.MS949 라는 인코딩은 Cp949 라고도 표현되며 MS 운영체제에서 지원하는 통합
완성형을 지원한다.대략 짐작을 했겠지만 이 두 가지 문제점의 해결 방법은 다음과 같다.
서버쪽 한글처리는 MS949 로 정하고, 브라우저의 한글처리는 ksc5601, euc-kr 등으로
한다. 즉 서버쪽은 @page 의 contentType 속성을 charset=MS949 로 <head> 태그 내의
<meta> 태그에서 Content-type 의 값을 charset=ksc5601 로 주면 브라우저쪽의
한글처리를 마무리지을 수 있다.코드는 다음과 같다.
<%@ page contentType="text/html;charset=MS949" %>
<html>
<head>
<META HTTP-EQUIV="Content-type"
CONTENT="text/html;charset=ksc5601">
<title>한글 인코딩</title>
</head>
<body>
"맛있는 케??"에서 "케??"은 표준어가 아닙니다. 표준어는 "케이크" 입니다.
</body></html>
[참고]
korea.internet.com 의 HTML에서의 문자 집합
http://korea.internet.com/channel/content.asp?nid=22838&cid=187#start
자바토피아 이창훈님 글
http://okjsp.pe.kr/bbs?act=VIEW&bbs=docs&seq=24333&pg=0
출처:http://okjsp.pe.kr
"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기, 각종 광고, 영업, 판매, 제안서, 전단지 반응율 3배×10배 이상 높이는 마법의 8단계 공식" |
☞자세히보기 |
|
|