搜尋
首頁web前端html教學html5 charset能用嗎?

html5 charset能用嗎?

Dec 01, 2016 am 10:39 AM
charsethtml5

前一段某項目中頁面在IE6突然出現了亂碼,當時做了各種排查,最終推測是使用了HTML5的DOCTYPE和Charset以及中文註釋的問題,於是臨時採用舊的Charset方法來修復了下,後面亂碼再沒出現。

其實一直不太確定HTML5的Charset能否被IE6識別,於是做了一些測試。

先說下兩種Charset宣告方法,其實大家應該都很熟悉的:

後面我們簡稱第一種方法為HTML5方法,第二種方法為HTML4方法。

測試環境:

Windows XP Sp2,中文版+英文版兩個版本的IE6,及Windows 7 下IE9及其各種相容模式和Chrome、Firefox等的當前Stable版本;

因為我們用到的HTML檔案都是UTF8編碼的,所以這裡測試案例的HTML檔案也都是UTF8(無BOM)格式,專案用gbk或gb2312編碼的類似。

測試用了兩種方法:

meta方法:包含HTML5和HTML4兩種方法及其混搭

伺服器端方法:伺服器端設定charset,這裡使用nginx,charset=utf-8

測試案例- Meta方法:

UTF8

UTF8 HTML4方法

UTF8-GB2312

UTF8+中文註解在meta前

UTF8+中文4GBHTML和HE 2312-UTF8

GB2312+中文註釋在meta前

GB2312+中文註釋在HTML和HEAD之間

測試用例——服務器方法:

服務器設置編碼

meta編碼和服務器編碼不一致

上面各用例均可直接訪問

測試結果:

測試個用例在各瀏覽器中表現一致;

UTF-8的方案中,全部正常顯示;

charset聲明為gb2312,由於和文檔的UTF-8編碼不符,所以全部亂碼;

1,6用HTML5 charset分別定義了UTF8和gb2312,1正常顯示沒有亂碼,6亂碼-在中文版IE6和英文版IE6皆如此,說明IE6能辨識HTML5的charset;

1,2用例和6,7用例,分別用單獨用HTML5和HTML4方法定義charset,效果一樣;

值得注意的是,第三個用例先用HTML5的方法設定UTF-8編碼,再用HTML4的編碼設定為gb2312,但頁面顯示正常,而第八個用例反之,結果頁面顯示亂碼,所以可以推測,第二個meta標籤並沒有生效;

4、5用例並沒有亂碼,說明單純的HTML註釋並不一定會導致亂碼,這裡沒有測試這兩個位置加載不同編碼的js等外部文件時可能發生的情況;

伺服器方法中,用例1並沒有用meta設定charset,頁面顯示正常,而用例2中用meta設定charset=gb2312,與伺服器版本不同,但依然沒有亂碼,表示伺服器端回傳的charset優先權較高;

結論:

其實關於charset的規範,Google的開發文件中也有解釋:

要在HEAD標籤中;

在任何其它內容之前,也就是要在HEAD中的最前面;

包括空格和DOCTYPE聲明在內,要在前512個位元組之內;

HTML5和HTML4兩種寫法效果一樣,用其中之一即可;

上面的測試也證明,第4條是正確的,兩種寫法均可。

另外,伺服器端設定charset也是很不錯的做法,charset聲明直接在HTTP response中取得,效率更高,而且更方便。 Google目前在用這種方法。

所以只要頁面寫的規範,並不會出現亂碼的問題。所以可以大膽的使用HTML5的DOCTYPE和Charset聲明。但請盡量按照上面說的Google文件中的規格來,頭部不要放太多東西,js等外部資源更要放到後面去。

測驗中難免會有遺漏,如果有不正確的地方,歡迎指正並一起討論~~


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
從文本到網站:HTML的力量從文本到網站:HTML的力量Apr 13, 2025 am 12:07 AM

HTML是一種用於構建網頁的語言,通過標籤和屬性定義網頁結構和內容。 1)HTML通過標籤組織文檔結構,如、。 2)瀏覽器解析HTML構建DOM並渲染網頁。 3)HTML5的新特性如、、增強了多媒體功能。 4)常見錯誤包括標籤未閉合和屬性值未加引號。 5)優化建議包括使用語義化標籤和減少文件大小。

了解HTML,CSS和JavaScript:初學者指南了解HTML,CSS和JavaScript:初學者指南Apr 12, 2025 am 12:02 AM

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML的角色:構建Web內容HTML的角色:構建Web內容Apr 11, 2025 am 12:12 AM

HTML的作用是通過標籤和屬性定義網頁的結構和內容。 1.HTML通過到、等標籤組織內容,使其易於閱讀和理解。 2.使用語義化標籤如、等增強可訪問性和SEO。 3.優化HTML代碼可以提高網頁加載速度和用戶體驗。

HTML和代碼:仔細觀察術語HTML和代碼:仔細觀察術語Apr 10, 2025 am 09:28 AM

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代碼” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代碼”代碼“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML,CSS和JavaScript:Web開發人員的基本工具HTML,CSS和JavaScript:Web開發人員的基本工具Apr 09, 2025 am 12:12 AM

HTML、CSS和JavaScript是Web開發的三大支柱。 1.HTML定義網頁結構,使用標籤如、等。 2.CSS控製網頁樣式,使用選擇器和屬性如color、font-size等。 3.JavaScript實現動態效果和交互,通過事件監聽和DOM操作。

HTML,CSS和JavaScript的角色:核心職責HTML,CSS和JavaScript的角色:核心職責Apr 08, 2025 pm 07:05 PM

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

HTML容易為初學者學習嗎?HTML容易為初學者學習嗎?Apr 07, 2025 am 12:11 AM

HTML適合初學者學習,因為它簡單易學且能快速看到成果。 1)HTML的學習曲線平緩,易於上手。 2)只需掌握基本標籤即可開始創建網頁。 3)靈活性高,可與CSS和JavaScript結合使用。 4)豐富的學習資源和現代工具支持學習過程。

HTML中起始標籤的示例是什麼?HTML中起始標籤的示例是什麼?Apr 06, 2025 am 12:04 AM

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),