AJAX를 적용하는데 동일한 서버 구성이라 생각했던 것을 개발 서버에서는 문제 없이 적용이 됐지만, 실 서비스에 적용을 하니 바로 저런 에러 메세지가 나왔다..;;
어떤 오류인지 찾다 보니 결국 IE 버그..
UTF-8 인코딩을 해줬음에도 IE에서는 정상적(?)인 UTF-8 코드로 인식을 하지 못하고 에러로 처리.
▲ 에러 환경
1. Apache
- '뷁' 과 같은 완성형 한글에는 없는 한글 처리를 위해 httpd.conf 파일에
"AddDefaultCharset X-WINDOWS-949"를 넣어준게 위와 같은 오류를 발생 시킴.
2. PHP
- /etc/php.ini에 default_charset = "x-windows-949" 추가.
해당 캐릭터 셋은 위의 버그와는 큰 관련이 없는 듯.
3. HTML Charset
- <meta http-equiv='Content-Type' content='text/html; charset=ks_c_5601-1987'>
역시 완성형 한글의 처리를 위해 euc-kr(Extended Unix Code-Korean)을 사용하지 않음.
▲ 해결 방법
1. Apache
- AddDefaultCharset 을 UTF-8로 지정. 단, 이 경우 페이지 인코딩도 UTF-8 형식으로 바꿔야 함.
- AddDefaultCharset 의 미지정. 아예 지정을 하지 않으면 해당 에러가 발생하지 않음.
2. PHP
- 변경하지 않음.
3. HTML Charset
- 변경하지 않음.
▲ 기타 방법.
- http://blueb.net/blog/index.php?setdate=200511&setday=17
- 헤더 부분에 Charset을 UTF-8로 명시 하면 된다.
- 하지만, 웹 서버에 DefaultCharset이 잘못 지정된 경우는 페이지 Charset을 UTF-8로 지정을
하더라도 에러가 발생함.
▲ 추가 사항.
- 한글 입력 부분에 일반 완성성 한글로 표현지 되지 않는 "뷁", "꽑", 됬" 등은 페이지 Charset이
EUC-KR인 경우 NCRs(Numeric Character References; 수치 문자 참조, 뷁 ->뷁)로
변환되어 출력이 된다.
- 이를 해결하기 위해서 확장 완성(UHC, codepage 949등)인 ks_c_5601_1987을 사용하긴 했지만,
이는 MS에만 적용되는 한글 인코딩으로 표준화된 인코딩 방식은 아니다.
IANA에서 표준화된 한글 인코딩 방식은 EUC-KR로 지정하고 있다.
출처 : Tong - 드렁크수달스님의 ■ AJAX ■통
"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기, 각종 광고, 영업, 판매, 제안서, 전단지 반응율 3배×10배 이상 높이는 마법의 8단계 공식" |
☞자세히보기 |
|
|