先看看再现代码。

1、gb2312.html文件编码为GB2312
复制代码代码如下所示:






{ p
颜色:红色;
}



测试

功能loadjs(SRC,charset){
VaR脚本= document.createelement('script);
script.src = SRC;
script.charset =字符集;
VaR的头= document.getelementsbytagname(很){ 0 };
head.appendchild(剧本);
}




2、本utf8.js文件编码是UTF-8
复制代码代码如下所示:
VaR(P = document.createelement 'p');
p.innerhtml = 'ie缓存乱码的原因;
document.body.appendchild(P);

的loadjs函数动态创建一个脚本,设置src,然后添加字符的头。这里的每一个点击按钮将utf8.js进入页面,和utf.js代码创建一个p元素设置一个文本,然后将其添加到身体。

第一个单击按钮,文本是正常的。

第二次之后,文本没有正确编码。

图


如果不是动态创建的脚本标记,直接写在HTML页面上,没有问题。
复制代码代码如下所示:


如果JS资源加载段模式,错误将不会出现
复制代码代码如下所示:

功能loadbywrite(URL,charset){
var=;
document.write(STR);
}


LoadByWrite('utf8 .js,'utf-8)


解决的办法是改变顺序分配的src字符集属性。
复制代码代码如下所示:
script.charset =字符集;
script.src = SRC;

这是将一个值赋给字符集第一。