2012-03-01 2 views
9

일부 forign 문자 (€, ó, á)가 포함 된 HTML이 있습니다. HTML 문서는 BOM없이 UTF-8로 저장됩니다. 브라우저에서 페이지를 볼 때 forign 문자가 낯선 문자 조합 (â,¬, ³, Ã)으로 바뀌는 것 같습니다. 내 HTML 문서를 BOM이있는 UTF-8로 저장하면 문자가 제대로 표시됩니다.BOM이없는 UTF-8 HTML은 이상한 문자를 표시합니다.

정말 내 파일에 BOM을 포함 할 필요는 없지만 아무도이 작업을 수행 할 수없는 이유를 알고 있습니까? 그것을 고치는 방법? (BOM 포함 제외)

+1

AddDefaultCharset UTF-8 대한 추가 정보를 UTF-8 인코딩? –

+0

'meta' 태그에 charset을 지정 했습니까? –

+0

서버 및 메타 태그로 적절한 작업을 수행하여 컨텐츠가 실제로 UTF-8임을 브라우저에 알 렸습니까? –

답변

14

HTML 파일에 올바른 문자 집합을 지정하지 않았을 수 있습니다. BOM (thanks to Jukka)은 브라우저를 UTF-.8 모드로 보냅니다. 부재시에는 다른 방법을 사용하여 UTF.8 문서를 선언해야합니다.

서버 구성에 액세스 할 수있는 경우 서버가 잘못된 문자 집합 정보를 보내지 않도록 할 수 있습니다. 예 :

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

또는 @Mathias가 지적 하듯이, 새로운 HTML 5

<meta charset="utf-8"> 
: 트릭을 할해야 문서의 머리에서이 메타 태그를 추가 How to change the default encoding to UTF-8 for Apache?

당신은 단지 당신의 HTML에 액세스 할 수있는 경우,

(HTML 5 문서 유형을 사용하는 경우에만 유효하며 HTML 5 마크 업을 사용하지 않아도 더 이상 좋은 인수가없는 경우 유효)

+5

+1. 요즘에는''을 사용할 수 있습니다. (2012 년 HTML5 DOCTYPE을 사용하지 않는다면 잘못하고있는 것입니다.) –

+0

@ 마티아스 좋은 지적, 추가, 감사합니다 –

+0

브라우저에서 테스트 한 브라우저가 실제로 BOM을 수신합니다. 분명히 서버가 아닌 문서 자체가 인코딩을 선언하여 브라우저가 인코딩을 추측하거나 추측하도록 강제합니다. 그리고 나서 BOM이 완벽하게 이해되는 UTF-8을 나타내는 것처럼 보입니다 (BOM이 없으면 데이터는 iso-8859-1, windows-1252 또는 이와 유사한 것으로 취해집니다) ¬, ³, Ã, 물건). –

2

삽입 <meta charset="utf-8"> in head.
또는 당신은 또한 .htaccess에 추가 할 수있는 서버 측
에 헤더 Content-Type: text/html;charset=utf-8 설정 : 여기에 HTML이로 자신을 식별합니까 http://www.askapache.com/htaccess/setting-charset-in-htaccess.html

+0

''는 HTML5 전용입니다. HTML4 및 이전 버전에서는 대신 '을 사용하십시오. –