在开发过程中,需要引用一些开源js文件到项目中,之后出现乱码,各方面确认使用编码字符集都是UTF-8,证明不是字符集的问题。
最终解决方案:将引入的js文件的字符集编码由UTF-8改为带有BOM的UTF-8格式即可解决乱码问题。
BOM:byte order mark,定义字节顺序,因为网络传输中分为两种,大头和小头。UTF-8不需要表明字节顺序,但可以用BOM来表示编码方式,windows就是采用BOM来标记文本文件的编码方式的。BOM是为UTF-16和UTF-32准备的,用于标记字节顺序。微软在UTF-8中使用BOM是因为这样可以把UTF-8和ASCII等编码区分开来,但这样的文件在windows之外的操作系统里会带来问题。不含BOM的UTF-8才是标准格式。UTF-8和带BOM的UTF-8的区别就是有没有BOM。即文件开头有没有U+FEFF。UTF-8的网页代码不应使用BOM,否则常常会出错。