欢迎光临杨雨的个人博客站!

杨雨个人网站-杨雨个人博客-杨照佳

杨雨个人博客网站

关注互联网和搜索引擎的个人博客网站

首页 > WEB开发 > html5案例分享 >

HTML5 Charset能用吗?

发布时间:2015-07-28  编辑:杨雨个人博客网站   点击:   

前一段某项目中页面在IE6溘然呈现了乱码,其时做了各类排查,最终展望是行使了HTML5的DOCTYPE和Charset以及中文注释的题目,于是姑且回收旧的Charset要领来修复了下,后头乱码再没呈现。

着实一向不太确定HTML5的Charset可否被IE6辨认,于是做了一些测试。

先说下两种Charset声明要领,着实各人应该都很认识的:

<meta charset="UTF-8"></meta> <meta content="text/Html; charset=UTF-8" http-equiv="content-type"></meta>

后头我们简称第一种要领为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+中文注释在HTML和HEAD之间

GB2312

GB2312 HTML4要领

GB2312-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的类型,中也有表明:

要在HEAD标签中;

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

包罗空格和DOCTYPE声明在内,要在前512个字节之内;

HTML5和HTML4两种写法结果一样,用个中之一即可;

上面的测试也证明,第4条是正确的,两种写法均可。

其它,处事器端配置charset也是很不错的做法,charset声明直接在HTTP response中得到,服从更高,并且更利便。Google今朝在用这种要领。

以是只要页面写的类型,并不会呈现乱码的题目。以是可以斗胆的行使HTML5的DOCTYPE和Charset声明。可是请只管凭证上面说的Google文档中的类型来,头部不要放太多对象,js等外部资源更要放到后头去。

测试中不免会有漏掉,假若有不正确的处所,接待指正并一路接头~~

本文地址:http://itbyc.com/web/html5/2693.html
转载请注明出处。
分享是一种快乐,也是一种美德:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
博客首页 | WEB开发 | 网站运营 | CMS使用教程 滇ICP备14002061号-1