본문 바로가기
프로그래밍/언어처리

IE의 언어자동선택 때문에 META CONTENT-TYPE CHARSET 지정이 먹지 않는 문제

by 베리베리 2009. 1. 1.
출처: http://mwultong.blogspot.com/2006/01/bloggercom.html


이 버그는 IE의 인코딩을 "자동 선택"으로 해 둔 상태에서 대부분 일어난다. IE가, 블로그의 인코딩을 UTF-8 이 아닌 euc-kr 로 오인하고 있었다. ('블로거'의 기본 인코딩은 UTF-8이다. 그러나 인코딩을 euc-kr로 해도 이 버그가 나타나는 경우가 있었다.) 그런데 이유는 아무리 찾아봐도 알 수가 없었다. 다만 파이어폭스에서는 이 버그가 나타나지 않았다.

보름 넘게 이 문제 때문에 고민하고 있었다. 템플릿과 HTML 소스를 아무리 분석해 봐도 알 수가 없었다. 일본어 사이트에서도 이런 경우가 드물지 않았다. 일본 네티즌들이 해결책을 올려놓았는데 실제 해보니 버그가 전혀 해결되지 않았다.

그런데 어제 템플릿의 첫부분을 무심코 보다가 약간 불합리한 점을 발견했었다. "타이틀 태그"가 "인코딩 정보"보다 먼저 기술되어 있었다. 이렇다면 이론적으로 웹브라우저는 타이틀 즉 제목표시줄의 문자들이 어떤 인코딩인지 알지 못하게 된다. 정상적인 브라우저라면 알겠지만 "인터넷 익스플로러" 즉 IE는 그렇지 못한 듯하다. (물론 엄밀히 말해서, 이 버그는 IE의 버그가 아니라 IE에 있는 '자동 선택'이라는 인코딩 툴의 문제다.)

그래서 이것의 순서를 바꾸어 주었다. 다시 말해, 페이지의 인코딩이 UTF-8이라는 사실을 먼저 브라우저에게 알려준 후, 제목과 내용을 적어나가는 것이다.

그랬더니 버그가 말끔히 없어졌다!!! 모든 포스트가 제대로 보인다.

댓글