2014-02-09 106 views
0

我在ANSI編碼的HTML文件。如果我嘗試瀏覽它,則會收到不可理解的字符,如問號。 我試圖把這個標籤:HTML內容類型元標籤(UTF8)

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

但它並沒有改變任何事情。

我將該文件轉換爲utf-8並再次嘗試,瞧,它的工作。

所以我刪除了上面的行:<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>並打開文件,它顯示正常。

所以,我的問題是:這行代碼是什麼意思?

+0

什麼樣的角色?哪種語言? – Niels

+0

如果你把你的文件謊言它的編碼,它是行不通的。 – SLaks

+0

阿拉伯語言,我編輯了這個問題。 –

回答

1
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
  • http-equiv屬性爲內容 屬性的信息/值的HTTP標頭。
  • content屬性給出了與http-equiv或name屬性關聯的值。
  • charset屬性指定的HTML文檔的字符編碼。

有效地,上述<meta>聲明將指示瀏覽器具有text/html與字符集設定爲UTF-8型的文件。

如果Content-Type標頭已經通過HTTP提供服務,那麼包含元聲明將不會有太大的區別。也就是說,除用戶覆蓋以外,真正的HTTP標頭優先於所有內容(UTF BOM是一個例外)。所述charset屬性只是意味着作爲回退,並且如果使用在HTTP報頭中指定的字符集的文件解碼失敗將僅被使用。

請注意,如果文件未保存爲UTF-8,則這沒有意義。只有當文件被保存爲UTF-8 charset將是有效的。將其保存爲UTF-8,你可以簡單地添加一個字節順序標記(BOM),在文件的開始:

$contents = file_get_contents('yourFile.ext'); 
file_put_contents($your_file, "\xEF\xBB\xBF".$content); 

參見: