最近做一个微信的小项目,测试的时候发现iphone版的微信分享网页或者分享到朋友圈时描述文字都变了乱码,安卓的微信分享倒没有这样的问题,最后问题解决了,分享一下我解决问题的过程。
一开始我以为是页面编码的问题,但是仔细研究了一下,乱码部分只跟js有关,比如alert()输出乱码,有关微信jssdk调用的部分都变了乱码了,分析到问题所在已经解决了问题的大半了。接下来百度了一下js乱码的原因:
-
可能原因一:
javascript如果是写在一个文件里面进行的调用,可能是因为js的编码和我们的HTML编码不一致。
解决方案:
在html中引入javascript代码时,指定其字符集为gb2312,即可显示中文。代码如下:
<script charset="gb2312" language="javascript" type="text/javascript" src="ntkoocx.js"></script>
-
可能原因二:
HTML网页的编码格式不支持显示中文。
解决方案:
在html代码的头部中加入一个属性设置,指定html代码的编码格式为utf-8,即可支持中文显示。代码如下:
<html meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
此时我接着百度,终于找到了,解决方法,在此贴上
问题原因在于你的jsp的页面编码格式和js的编码格式不一致导致的,解决办法如下
1:查看jsp页面page指令中的编码格式,是UTF-8或者GBK,在选中js文件,右键,属性,查看字符编码,改为与jsp页面字符编码相同的,点击确定即可
注意:此种方式会导致js文件中原有的中文变为乱码,重新写一次中文即可
2:选中js文件,右键,属性,查看字符编码,记住后确定;打开jsp文件,修改jsp文件的page执行中的pageEncoding,将其字符编码与js保持一致即可
看到这里,我已经大概猜到了,查看一下js文件的编码格式,果然是ANSI!改成utf-8之后分享终于正常了
好了,问题解决了,原来是js文件编码的问题,估计是iphone微信浏览器不会把ansi编码的文件自动转换,以后大家遇到这类问题可以参照此思路解决。