HTML5中的Meta字符集標籤

在HTML5中設置字符編碼

在引入HTML5之前,在元素請求的文檔上設置字符編碼以寫下下面所示的有些冗長的行。 如果您在網頁中使用HTML4,則這是Meta Charset元素:

在這個代碼中註意到你在content屬性周圍看到的引號是很重要的: content = text / html; charset = iso-8859-1 。 像所有HTML屬性一樣,這些引號定義了屬性的值,表示整個字符串text / html; charset = iso-8959-1是這個元素的內容 。這是正確的HTML,它是如何寫這個字符串的。 它也很笨重,很難看! 這也不是你可能記得的事情! 在大多數情況下,Web開發人員必須將這些代碼從一個站點複製並粘貼到他們正在開發的任何新代碼中,因為從頭開始寫這個代碼需要很多。

HTML5刪除額外的東西"

HTML5不僅為該語言增加了許多新元素 ,而且大大簡化了HTML的許多語法,包括Meta Charset元素。使用HTML5,您可以添加字符編碼,使用META元素的易於記憶語法你看到下面:

將該簡化語法與本文開頭所寫的內容(用於HTML4的舊語法)進行比較,您會發現編寫和記憶HTML5版本確實更容易。 您不必將現有網站中的內容複製並粘貼到您正在處理的任何新內容中,這絕對是您作為前端Web開發人員所記得的東西。 這種時間節省很多不多,但是當您考慮HTML5簡化的其他語法區域時,節省的成本就會加起來!

始終包含字符編碼

即使您不打算使用任何特殊字符 ,也應該為您的網頁始終包含字符編碼。 如果您不包含字符編碼,則您的網站會受到使用UTF-7的跨站點腳本攻擊的攻擊。

在這種情況下,anattacker認為你的網站沒有定義字符編碼,所以它會讓瀏覽器認為頁面的字符編碼實際上是UTF-7。 接下來,攻擊者將UTF-7編碼的腳本插入到網頁中,並且您的網站被黑客入侵。對於涉及到您的公司和訪問者的所有人員,這顯然是個問題。 好消息是這是一個簡單的問題要避免 - 只要確保將字符編碼添加到您的所有網頁。

在哪裡添加字符編碼

網頁的字符編碼應該是HTML的元素的第一行。這確保瀏覽器在頁面上執行任何其他操作之前知道字符編碼的內容,而不是確定文檔類型並確定它是HTML頁面。 您的HTML應為:

<!doctype html> ...

使用HTTP頭來提高安全性

您還可以在HTTP標頭中指定字符編碼。 這比將它添加到HTML頁面更安全,但您需要訪問服務器配置或.htaccess文件,這意味著您可能需要與您的網站託管服務提供商合作以獲得此類訪問權限或讓他們進行訪問你的變化。 訪問真的是這裡的挑戰。 更改本身很簡單,所以任何託管服務提供商都應該能夠相對輕鬆地為您進行此更改。

如果您使用的是Apache,您可以通過添加: AddDefaultCharset UTF-8到您的根.htaccess文件來為整個站點設置默認字符集。 Apache的默認字符集是ISO-8859-1