问题描述
两个js文件(记为a.js、a1.js),从文件编码格式(都是无Bom的utf8)、文件大小、乃至文件中的每一个字符都是一模一样的。svn、git这种基于纯文本的diff工具看不出两者有任何区别。后续如果还出现问题是要BeyondCompare进行二进制比对看看。
但是其中一个有问题,在有些Android 微信浏览器初次访问H5页面的时候,页面上中文乱码(页面上的中文都是从a.js中获取的),刷新页面还是乱码(这个本质上是Android微信浏览器的缓存机制,刷新页面只是从缓存又读取了一遍a.js)。
但是,奇怪的是,把页面的链接复制出来,再点击链接进去,乱码问题又消失了。注意,这中间没有做任何代码上的修改。
解决办法
将相关的js文件用记事本以txt文件的形式打开后重新保存一下。
当然上面的做法根本没有解决问题,问题的排查和解决还是比较复杂,完整记录于:js中文乱码问题,还有比这更诡异的么?