2012-03-06 28 views
14

我正在處理大量主要編碼爲utf-8的HTML文件。有許多重音字符在法語中都很豐富。我一直在將它們轉換爲HTML實體,但我注意到,即使在IE5.5中(根據IE測試程序),未轉換的重音字符也能正常顯示。是否所有重音字符都使用html實體?

我應該關心字符顯示並將它們全部轉換爲HTML實體以保證安全?

回答

17

如果文件是UTF-8編碼,您應該設置Content-Type頭是text/html; charset=UTF-8並在頁面上的等效meta標籤:

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

這使瀏覽器的所有信息顯示UTF- 8個字符正確。不需要編碼重音字符。

+0

錯誤的字符集那裏。 – tchrist 2012-03-06 16:10:51

+0

@tchrist - 謝謝。 – Oded 2012-03-06 16:12:10

+0

我一直認爲這個meta標籤本身是相當無用的。爲了讓瀏覽器讀取標籤,它必須通過其他方法知道或猜測字符集,並且至少可以「足夠接近」。 – 2015-11-12 13:58:00

2

您需要記住的是法語是UTF-8家族以及葡萄牙語,西班牙語等的一部分,因此它們將正確顯示UTF-8標籤並提供瀏覽器也使用UTF- 8爲頁面。

問題是,當一個人使用瀏覽器強制另一個字符集來到頁面,這將打破未編碼的字符。在巴西,這種情況發生了一些,許多瀏覽器未設置爲自動檢測字符集,並且設置爲ISO-8859-1,這在這裏很常見。

因此,儘可能對所有「特殊」字符進行編碼,以實現最普遍的訪問。

我希望有幫助!

+0

你知道什麼情況導致瀏覽器強制另一個字符集? – Damon 2012-03-06 18:42:47

+1

有兩個因素,第一個也是最常見的是某些語言的某些瀏覽器不使用UTF-8作爲默認值,因爲它們不是UTF-8語言,或者UTF-8不如其他字符國家,第二個是用戶偏好,例如一個站點需要更改字符集,用戶忘記將其更改回來。 – Ryan 2012-03-06 18:57:29

4

通常沒有理由對重音字母等字符使用實體。使用它們是有效的,但往往會混淆源代碼,因此可能會導致錯誤。

但是,在某些情況下,實體是必需的。原因與瀏覽器無關,但與創作方面無關。特別是,如果您需要編輯使用編輯器或編寫程序的文件不能很好地處理重音字母,您可能會發現有用的實體。如果數據必須通過某些具有類似問題的軟件,則同樣適用。而且在某些情況下,您需要在無法控制HTTP標頭的環境中工作,並且標頭指定的編碼不允許您直接輸入所有字符。

相關問題