又遇编码问题之JS乱码

作者:Lonkil

Web开发中编码问题处理不好总是很头疼,特别与Ajax纠缠在一起时,更容易出乱。前一段时间做一个Asp.net项目时遇到的编码问题。Asp.Net页面使用UTF-8乱码解决方案,今天在做PHP的一个小程序时也遇到乱码问题。

问题描述:

1.前台页面编码方案未知,可能是utf-8,也可能gb2312等编码方案。由于页面的前台并不是我做的,无法规定编码方案。
2.我用PHP生成的js代码是utf-8的,且其中包含有汉字。
症状:
当前台页面与我生成的JS不同时,将导致乱码。

解决编码的基本思路是将页面用采用utf-8输出,毕竟是UNICODE的,可以很好的照顾到各类的MBCS。有一点比较重要的就是生成的页面也需要保存成utf-8的,否则必与乱码亲密接触。文件的编码可采用EditPlus或UE的编辑工具进行转换,如果需要批量转换的话,可以使用这个工具处理:

  UltraCodingSwitch.rar (466.0 KiB, 377 hits)


然后将Content-type设置成相同的编码方案即可解决一般的乱码问题。

1
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

我今天的这个问题难点是我只做JS,JS的编码我可以定好,但页面由客户系统决定,我无法更改,故造成乱的可能性相当的大。
解决方法也很简单,在引用Javascript时加你编码方案的charset即可。

?View Code JAVASCRIPT
1
<script  type="text/javascript" src="mini_game.js" charset="utf-8"></script>

如果单纯的在javascript实现部分加上charset是无效的,为此折腾半天。

有一个疑问就是发现类似阿里妈妈的广告系统的JS引用代码并未使用charset,但其却能在各种页面编码中正常显示?难道那段JS会读取引用页面的编码方案,然后根据其编码方案,再生成相应编码的JS输出。此仅为个人猜测,如果您有更好的解决方案,烦请给小弟指点一下迷津,谢谢。我的邮箱是

转载请注明出处,谢谢。

发表评论





XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>