2012-03-01 37 views
9

我有一些包含一些外文字符的HTML(€,ó,á)。 HTML文檔保存爲不含BOM的UTF-8。當我在瀏覽器中查看頁面時,外鍵字符似乎被陌生人字符組合(Ã,Ã,Ã,Ã)所取代。只有當我將HTML文檔保存爲帶有BOM的UTF-8時,才能正確顯示字符。沒有BOM的UTF-8 html顯示奇怪的字符

我真的不需要在我的文件中包含BOM,但有誰知道它爲什麼會這樣做?並解決它的方法? (不包括BOM)

+1

請問HTML自身標識AddDefaultCharset UTF-8更多信息UTF-8編碼? – 2012-03-01 15:07:36

+0

你是否在'meta'標籤中指定了字符集? – 2012-03-01 15:07:43

+0

您是否已使用服務器和元標記來做適當的事情,以通知瀏覽器該內容實際上是UTF-8? – 2012-03-01 15:07:59

回答

14

您可能沒有在HTML文件中指定正確的字符集。 BOM(謝謝@Jukka)將瀏覽器發送到UTF-.8模式;如果沒有,則需要使用其他方法來聲明文檔UTF.8。

如果您有權訪問服務器配置,則可能需要確保服務器未發送錯誤的字符集信息。見例如How to change the default encoding to UTF-8 for Apache?

如果只有你的HTML訪問,將在文檔的頭部這個元標記應該做的伎倆:

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

或@Mathias指出,新的HTML 5

<meta charset="utf-8"> 

(僅當您使用HTML 5文檔類型時,即使您沒有使用HTML 5標記,對此也沒有什麼好論據。)

+5

+1。現在你可以使用''。 (如果你在2012年沒有使用HTML5 DOCTYPE,那麼你做錯了。) – 2012-03-01 15:10:56

+0

@Mathias好點,補充,謝謝 – 2012-03-01 15:14:23

+0

這些症狀表明瀏覽器測試實際上是在監聽BOM:顯然,服務器都不是文檔本身聲明編碼,強制瀏覽器推斷或猜測編碼;似乎它需要一個BOM來指示UTF-8,這非常合理(並且在沒有BOM的情況下,數據被視爲iso-8859-1,windows-1252或類似的東西, ¬,³,ü東西)。 – 2012-03-01 15:53:40