Philna2就是我目前正在使用的这款很棒的WP主题,之前换上这款皮肤的时候已经为大家介绍过作者的用心良苦及皮肤的优秀。很是喜欢,在一天一歌小朋友的推荐下,我选择了这款皮肤。
同样,也是一天一歌小朋友告诉我,最新的这款皮肤是有一个问题的——在右侧搜索框里输入中文,显示结果页面会把输入的内容变成神奇的乱码,而导致无法正常查询。而作者现在正处于人生的关键期——考研,貌似也没有时间来维护这个主题。但是不管怎么说,我们要祝福这位作者,走过独木桥,成为最后的胜利者。
所以这里,就简单的提供一种方法来解决此问题,读者勿怪,原作者勿怪。
问题描述:
这款皮肤使用了大量的AJAX效果,使用户不用受到地址栏跳转的干扰,而仅仅是局部更新。但是这样也就导致了问题的原因所在:AJAX提交中文的时候,如果不做编码处理的话是会产生乱码的。
查看作者原代码,发现确实是没有做编码处理,这样提交过去的中文是有问题的。
不过有些莫名其妙,因为我全站都是采用UTF-8编码的,正常同一编码下是不会产生乱码的,但是这样还不行,就有些不知所以然了,但是最后总归是解决了问题。我也就懒的查真正的原因了。怎一个懒字了得,没办法,天生的。
解决办法:
刚看作者的JS时候,几乎吐血。原来作者为了考虑增加js下载速度。把js文件进行了压缩处理,这样我看到的就类似于一堆乱码了。于是乎,解码,用YSLOW提供的工具来把压缩过的代码变成可读的,最起码不伤眼睛的。呵。
转义过来后,我们在提交查询的语句之前把把查询的内容转成16进制,这样传递给php的时候,我们是不用做任何操作的。所以我们采用encodeURIComponent函数,方便啊。
将js还原回去:
既然作者为我们把js文件进行了压缩,我们怎么也不能辜负作者的一片心意。我们把改后的js再压缩回去。但是用yslow或者是Closure Compiler都没有作者压缩的风格好。那可是完全看不懂的。
于是上网上搜索,别说,还真让我找到了作者是采用什么压缩工具进行压缩的。那就是:JSA
下载地址:
到这里,问题已经解决了,那么我就把压缩前和压缩后的分别提供给大家吧。爱用哪个您随意。解压后。请将其替换themes\philna2\js下的philna2.js。
扩展学习:
关于Ajax中文乱码的问题,大家还可以看一下网上的资源,蛮丰富的。和PHP,JS有关的我挑了两个放在这里,方便他人,方便自己。
@simaopig
这么快。。。还没有收到,哈哈