html中文空格-可以使用HTML5Charset吗?

2023-08-29 0 6,462 百度已收录

前一段某项目中,IE6下页面突然出现乱码。 当时做了各种调查,最后的结论是使用了HTML5的DOCTYPE、Charset和英文注释,所以暂时使用旧的Charset方法修复。 之前的乱码再也没有出现过。

虽然我仍然不确定HTML5 Charset是否可以被IE6识别,但我做了一些测试。

我先说一下下面两个Charset声明方法,虽然你应该很熟悉它们:

前面我们将第一种方法称为HTML5方法,将第二种方法称为HTML4技术。

html中文空格-可以使用HTML5Charset吗?

测试环境:

WindowsXPSp2、英文版+英文版IE6、Windows7下的IE9及其各种兼容模式以及当前稳定版的Chrome、Firefox等;

由于我们使用的HTML文件都是UTF8编码的,所以这里测试用例的HTML文件也是UTF8(无BOM)格式,项目中都是类似的gbk或者gb2312编码

测试中使用了两种方法: meta 方法:包括 HTML5 和 HTML4 及其混搭 服务器端方法:服务器端设置 charset,这里使用 nginx,charset=utf-8 测试用例 - Meta 方法:UTF8UTF8HTML4 方法 UTF8-GB2312UTF8+ English meta 前注释 UTF8+HTML 与 HEAD 之间英文注释 GB2312GB2312HTML4 模式 GB2312-UTF8GB2312+meta 前英文注释 GB2312+HTML 与 HEAD 之间英文注释 测试用例-服务器方法:服务器设置编码 meta 编码与服务器编码不一致

html中文空格-可以使用HTML5Charset吗?

里面的每个用例都可以直接访问

测试结果:测试用例在所有浏览器中一致; 在UTF-8方案下,全部正常显示; charset声明为gb2312,因为与文档的UTF-8编码不匹配,所以全是乱码; 1、6使用HTML5字符集分别定义了UTF8和gb2312,1正常显示无乱码,6为乱码——英文版IE6和英文版IE6都是这种情况,说明IE6可以识别HTML5字符集; 1、2用例和6、7用例,单独使用HTML5效果与HTML4方法定义charset相同; 值得注意的是,第三个用例先使用HTML5设置UTF-8编码,然后使用HTML4编码设置gb2312,但页面显示正常,而第八个用例相反,结果页面显示乱码,因此可以推断第二个meta标签还没有生效; 用例4和用例5均未出现乱码html中文空格,说明简单的HTML注释并不一定会导致乱码,也没有测试在这两个位置加载不同的代码。 js 和其他外部文件; 服务器模式下,用例1没有使用meta设置charset,页面显示正常,但用例2中,使用meta设置charset=gb2312,与服务器版本不同,但依然没有出现乱码html中文空格,表示服务器返回的字符集优先级较高; 推理:

虽然Google的开发文档中也解释了charset的规范:

必须在HEAD标签中; 在任何其他内容之前,即在 HEAD 的顶部; 包括空格和DOCTYPE声明,必须在前512字节内; HTML5和HTML4效果一样,使用其中之一;

里面的测试也证明了第4条是正确的,两种写法都可以接受。

另外,在服务器端设置charset也是一个很好的做法。 直接在HTTP响应中获取charset语句,效率更高,也更方便。 谷歌目前正在使用这些技巧。

所以只要页面写得规范,就不会出现乱码的问题。 所以可以大胆使用HTML5的DOCTYPE和Charset声明。 并且请尽量遵循上述Google文档中的规范。 脖子上不要放太多东西,js等外部资源应该放在前面。

测试中难免会有疏漏,如有不对的地方还请见谅,一起讨论~~

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 html html中文空格-可以使用HTML5Charset吗? https://www.wkzy.net/game/181273.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务