网页动态引入js文件编码不一致导致中文乱码问题的解决

web开发有很多的难点,如:各浏览器之间的兼容性问题、sql注入、this指向问题、ajax跨域问题等等。前不久,帮客户定制了一款系统,该系统中的js文件是utf-8编码,而客户网页是需要引入该js文件的,但客户网页存在UTF-8和gbk编码,该js文件有向后台交互提交数据的功能,采用动态加载js的方式,代码如下:

var _wx_s_t_q = _wx_s_t_q || {};    
(function() {    
    var wx = document.createElement("script");    
    wx.src = "xx/request.js?"+new Date().getTime();    
    var s = document.getElementsByTagName("script")[0];    
    s.parentNode.insertBefore(wx, s);    
})();

 

被gbk编码的网页引入后,直接报错,功能不可用,翻看手册,script对象有chaset属性,于是稍加修改,指定了编码为:utf-8,一切正常,最终代码如下:

var _wx_s_t_q = _wx_s_t_q || {};
(function() {
    var wx = document.createElement("script");
    wx.charset = 'UTF-8';
    wx.src = "xx/request.js?"+new Date().getTime();
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(wx, s);
})();

 

温馨提示,建议网页编码还是以utf-8好些,基本上开源js项目均采用这一编码,通用性强。避免了因编码问题导致的中文乱码问题。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注




Enter Captcha Here :

qq
微信
微信
分享本页
返回顶部