成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

HTML5Charset能用嗎?

2023-08-21    分類: 網(wǎng)站建設(shè)

百度權(quán)重查詢 站長(zhǎng)交易 友情鏈接交換 網(wǎng)站監(jiān)控 服務(wù)器監(jiān)控 seo監(jiān)控

前一段某項(xiàng)目中頁(yè)面在IE6倏忽出現(xiàn)了亂碼,當(dāng)時(shí)做了各種排查,好終推斷是使用了HTML5的DOCTYPE和Charset以及中文注釋的問(wèn)題,于是一時(shí)采用舊的Charset方法來(lái)修復(fù)了下,后面亂碼再?zèng)]出現(xiàn)。

其實(shí)一向不太確定HTML5的Charset能否被IE6識(shí)別,于是做了一些測(cè)試。

先說(shuō)下兩種Charset聲明方法,其實(shí)大家應(yīng)該都很熟悉的:

<meta charset=“UTF-8”><!--HTML5方法-->

<meta http-equiv=“content-type” content=“text/html; charset=UTF-8”><!--HTML4及XHTML方法-->

后面我們簡(jiǎn)稱種方法為HTML5方法,第二種方法為HTML4方法。

測(cè)試環(huán)境:

Windows XP Sp2,中文版+英文版兩個(gè)版本的IE6,及Windows 7 下IE9及其各種兼容模式和Chrome、Firefox等的當(dāng)前Stable版本;

因?yàn)槲覀冇玫降腍TML文件都是UTF8編碼的,所以這里測(cè)試用例的HTML文件也都是UTF8(無(wú)BOM)格式,項(xiàng)目用gbk或者gb2312編碼的類似。

測(cè)試用了兩種方法:

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

服務(wù)器端方法:服務(wù)器端設(shè)置charset,這里使用nginx,charset=utf-8

測(cè)試用例——Meta方法:

UTF8

UTF8 HTML4方法

UTF8-GB2312

UTF8+中文注釋在meta前

UTF8+中文注釋在HTML和HEAD之間

GB2312

GB2312 HTML4方法

GB2312-UTF8

GB2312+中文注釋在meta前

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

測(cè)試用例——服務(wù)器方法:

服務(wù)器設(shè)置編碼

meta編碼和服務(wù)器編碼不一致

上面各用例均可直接訪問(wèn)

測(cè)試效果:

測(cè)試個(gè)用例在各瀏覽器中體現(xiàn)一致;

UTF-8的方案中,悉數(shù)正常顯示;

charset聲明為gb2312,因?yàn)楹臀臋n的UTF-8編碼不符,所以悉數(shù)亂碼;

1,6用HTML5 charset分別定義了UTF8和gb2312,1正常顯示沒有亂碼,6亂碼——在中文版IE6和英文版IE6均如此,說(shuō)明IE6能識(shí)別HTML5的charset;

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

值得注重的是,第三個(gè)用例先用HTML5的方法設(shè)定UTF-8編碼,再用HTML4的編碼設(shè)定為gb2312,但頁(yè)面顯示正常,而第八個(gè)用例反之,效果頁(yè)面顯示亂碼,所以可以推斷,第二個(gè)meta標(biāo)簽并沒有生效;

4、5用例并沒有亂碼,說(shuō)明單純的HTML注釋并不一定會(huì)導(dǎo)致亂碼,這里沒有測(cè)試這兩個(gè)位置加載不同編碼的js等外部文件時(shí)可能發(fā)生的情況;

服務(wù)器方法中,用例1并沒有效meta設(shè)置charset,頁(yè)面顯示正常,而用例2中用meta設(shè)置charset=gb2312,與服務(wù)器版本不同,但依然沒有亂碼,說(shuō)明服務(wù)器端返回的charset優(yōu)先級(jí)更高;

結(jié)論:

其實(shí)關(guān)于charset的規(guī)范,Google的開發(fā)文檔中也有詮釋:

要在HEAD標(biāo)簽中;

在任何其它內(nèi)容之前,也就是要在HEAD中的好前面;

包括空格和DOCTYPE聲明在內(nèi),要在前512個(gè)字節(jié)之內(nèi);

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

上面的測(cè)試也證實(shí),第4條是準(zhǔn)確的,兩種寫法均可。

另外,服務(wù)器端設(shè)置charset也是很不錯(cuò)的做法,charset聲明直接在HTTP response中獲得,效率更高,而且更方便。Google目前在用這種方法。

所以只要頁(yè)面寫的規(guī)范,并不會(huì)出現(xiàn)亂碼的問(wèn)題。所以可以勇敢的使用HTML5的DOCTYPE和Charset聲明。但是請(qǐng)盡量按照上面說(shuō)的Google文檔中的規(guī)范來(lái),頭部不要放太多東西,js等外部資源更要放到后面去。

測(cè)試中難免會(huì)有遺漏,假如有不準(zhǔn)確的地方,迎接指正并一路討論~~

文章來(lái)源:前端觀察

名稱欄目:HTML5Charset能用嗎?
鏈接地址:http://jinyejixie.com/news20/277470.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站設(shè)計(jì)、網(wǎng)站改版、網(wǎng)站收錄用戶體驗(yàn)、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
沧源| 富源县| 武宁县| 普定县| 盐津县| 金乡县| 蓬安县| 田阳县| 阿拉尔市| 庐江县| 湟中县| 平顶山市| 蛟河市| 永和县| 武宁县| 大埔县| 永德县| 平舆县| 汕头市| 内江市| 汕头市| 金寨县| 伊宁县| 南岸区| 安吉县| 嘉义县| 黔江区| 阜平县| 灵山县| 兰考县| 文水县| 东方市| 巴马| 崇义县| 红河县| 鄂伦春自治旗| 澄城县| 鄂伦春自治旗| 唐山市| 闽清县| 定日县|