记一次中文乱码
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"/> <style> p { color: red; } </style> </head> <body> <button onclick="loadJS('a.js', 'GBK')">测试</button> <div id="ceshi"></div> <div id="divtag"></div> </body> <script> function loadJS(src, charset) { var script = document.createElement('script'); let ss= (new Date()).getTime(); // script.src = "https://test/test/ta_Cache.js?"+ss; script.src = "https://test/test/ata.js"; // script.src = "https://test/test/ata.js?"+ss; script.charset = charset; var head = document.getElementsByTagName('head')[0]; head.appendChild(script); document.getElementById("divtag").innerHTML=data.cuemoddata; // document.getElementById("divtag").innerHTML=divtag[0][1][1][0]; } </script> </html>
问题:ie下第一次不乱码,第二次及以后乱码。因为这个文件是GBK编码文件,html是utf-8
编码的。第一次代码设置了charset="GBK"不乱码,后面浏览器缓存住了,然后缓存代码默认以html首部utf-8的编码格式去解析,就乱码了。