猿问

您好,想了解一下在html文档中meta标签中的charset属性的作用 ?

做了几个实验发现charset好像并不影响浏览器打开HTML文档的方式,以下为所做的测试:

1)设置charset为utf-8,保存为utf-8编码的HTML文档,浏览器设置为gbk编码,结果出现乱码;

2)设置charset为utf-8,保存为gbk编码的HTML文档,浏览器设置为gbk编码,结果无乱码;

如果charset属性起作用(将编码方式的信息发送给浏览器),那么理论上第二次实验也会出现乱码吧?可是这里没有乱码,说明了浏览器并不是识别charset属性来确定打开HTML文档的属性的;那么既然charset属性不起作用,那么charset的存在有什么意义?

另外,我用chrome设置了自动识别编码格式,然后不论charset属性与保存时的编码格式是否相同,打开都不会出错了。这又是什么鬼?

白猪掌柜的
浏览 341回答 2
2回答

扬帆大鱼

charset 属性规定在外部脚本文件中使用的字符编码。如果外部文件中的字符编码与主文件中的编码方式不同,就用到 charset 属性。

互换的青春

html文档中meta标签中的charset属性的作用:是告诉浏览器自动识别编码下用到的编码格式(因为在实际应用中是不会去改动浏览器的编码方式,所以这个参数得设置)。所以在第2种情况下,HTML文档是用gbk保存的(即用gbk编码保存的),浏览器又是用gbk去解码的(已人为的改为gbk了,charset的值utf-8也就失去作用!!),所以是不会出现乱码的,除非是在浏览器自动识别编码下(这时候浏览器就会用到charset的值utf-8)就会出现乱码!html文档中meta标签中的charset属性的值决定浏览器自动识别编码格式所用到的字符集!!保证保存html文件用的编码和charset的值是一致的,再保证浏览器选的是动识别编码格下(或者人为的设置字符集编码与保存用的编码一致),就不会出现乱码!!总之,编码和解码前后用到的字符集编码必须一致!!!!!这里浏览器自动识别编码的字符集也就是默认情况下识别编码字符集!
随时随地看视频慕课网APP

相关分类

Java
我要回答