现象:
1.js编码格式为utf-8;
2.script标签也设置了charset=“utf-8”;
浏览器显示js文件还是乱码???
原因:
1.js文件使用的是无BOM头的utf-8文件
2.<script>标签没有添加type=“text/javascript”属性。
分析:
html规范<script>标签默认的type属性为text/javascript,但又规定在不指定type=“text/javascript”时charset属性失效,使用文件给定的编码格式,文件没有BOM头,浏览器使用默认的编码。(BOM头是什么自行百度)
所以,我们用记事本把js文件另存为utf-8(默认加BOM头)的编码格式是可行的,修改<script>标签也是可行的,把省略的type=“text/javascript”属性添加上。
但是,只有当外部脚本文件中的字符编码与主文件中的编码不同时,会用到 charset 属性。也就是如果html的charset="utf-8",这时js文件是无BOM头的UTF-8文件,在设置script的charset属性是无效的,还是需要把js文件转为有BOM头的UTF-8文件。