아니요, HTML 내에서는 불가능합니다. 서버 응답 헤더가 문서의 메타 태그보다 우선합니다. 5.2.2에 지정된대로 문자 인코딩 지정-HTML 4.01 Specification :
요약하면, 적합한 사용자 에이전트는 문서의 문자 인코딩을 결정할 때 다음 우선 순위를 준수해야합니다 (가장 높은 우선 순위에서 가장 낮은 우선 순위로).
- "Content-Type"필드의 HTTP "charset"매개 변수
- "http-equiv"가 "Content-Type"으로 설정되고 "charset"에 대한 값이 설정된 META 선언.
- 외부 자원을 지정하는 요소에 설정된 문자 세트 속성
따라서 서버 측에서 구성해야합니다. 그러나 장이 계속됨에 따라 :
사용자 에이전트는 사용자가 잘못된 "문자 세트"정보를 무시할 수있는 메커니즘을 제공 할 수 있습니다. 그러나 사용자 에이전트가 이러한 메커니즘을 제공하는 경우 잘못된 "charset"매개 변수로 표시된 웹 페이지가 작성되는 것을 피하기 위해 편집 용이 아닌 탐색 용으로 만 제공해야합니다.
필자의 경우 서버의 Content-Type 헤더에는 올바른 mime-type 이지만 잘못된 charset이 있습니다.
결과적으로 내 Apache httpd 구성이 부품 AddDefaultCharset
을 추가하는 켜기를 설정했습니다 ; charset=ISO-8859-1
. 웹 사이트 루트 디렉토리 .htaccess
에 다음 줄을 배치하십시오 .
AddDefaultCharset Off
문자셋 정보가 제거되었습니다 :
$ curl -I http://example.com/file.html
HTTP/1.1 200 OK
Date: Fri, 19 Oct 2012 15:07:52 GMT
...
Content-Type: text/html
(마지막 줄 참조 ; charset=...
). 이것은 html 메타 태그와 결합하여 상기 브라우저 휴리스틱 이 메타 태그로부터 캐릭터 셋 을 인계하도록 트리거한다 . 웹 사이트가 올바르게 디코딩되었습니다.
로 테스트 :
- 구글 크롬 v. 22.0.1229.94
- Firefox v. 16.0.1
- Lynx 버전 2.8.7rel.1 (2009 년 7 월 5 일)
이 세 가지 브라우저는 원래 구성에 문제가 있었고 현재 작동합니다 (모두 Fedora 17에서).
- 오페라 12.02
- Internet Explorer 6 (Win XP SP3)
처음에는 문제가 없었습니다. 둘 다 서버 의 ISO-8859-1 설정 보다 메타 태그에서 UTF-8 을 선호했습니다 .
UTF-8을 지원하지 않으므로 서버 설정 및 메타 태그에 관계없이 항상 Western (Latin1)을 선택 합니다.