2011-10-18 2 views
12

나는 인코딩브라우저에서 UTF-8 인코딩을 강제하는 방법은 무엇입니까?

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

로 선언 된 페이지를하지만 다른 인코딩 (ISO)가 브라우저에서 선택 페이지를 입력 할 때. PHP 메서드로 인코딩을 설정하려고 시도했습니다.

header('Content-type: text/html; charset=utf-8'); 

그러나 도움이되지 않았습니다. 모든 소스 파일은 BOM없이 UTF-8로 인코딩됩니다. 내가 시도한 유일한 해결책은 AddDefaultCharset UTF-8 줄을 추가하여 .htaccess 파일에 인코딩을 설정했지만 서버의 다른 페이지가 제대로 표시되지 않았습니다. 이 문제를 어떻게 해결할 수 있습니까?

+4

페이지가 HTTP를 통해 제공되는 ** 때 메타 콘텐츠 형식의 태그가 ** 무시되고 있습니다. 브라우저가 페이지를 디스크에 저장 한 다음 'file : ///'에 의해 디스크에서 열 때만 사용됩니다. 페이지가 HTTP를 통해 제공 될 때 HTTP 응답'Content-Type' 헤더의'charset' 속성에 지정된 charset이 사용되었습니다. PHP에서 헤더를 너무 늦게 설정 한 것 같습니다 (응답을 작성하기 전에 설정해야합니다. 적절한 PHP 오류보고 수준을 설정 한 경우이 오류를 알리게됩니다). – BalusC

+0

인코딩이 어떻게 다른지 확인할 수 있습니까? 문자가 적절하게 표시되지 않습니까? 그것은 SQL DB 가져온 텍스트, 어떤 경우에는 mysql_set_charset 도움이 될 수 있습니다 ... – SW4

+2

@ Ergo :'.htaccess'에서'AddDefaultCharset UTF-8'을 설정함으로써 해결되지 않았을 것입니다. – BalusC

답변

6

안 디폴트의 캐릭터 세트 :

AddDefaultCharset Off 
+0

을 참조하십시오. 이는 ISO에서 인코딩해야하는 서버의 다른 페이지가 올바르게 표시되지 않도록합니다. (AddDefaultCharset UTF-8과 비슷하다.) – mkas

+0

apache가 헤더에 charset을 보내지 않으면 브라우저는 인코딩을 추측 할 것이다. 대부분 iso-8859-2를 추측 할 것입니다. – Gerben

+0

당신이 옳다는 것이 도움이되었습니다. 나는 그것이 유효하고 strandards에 따라다는 것을 희망한다. – mkas

관련 문제