Philna2 搜索中文乱码的解决
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
本文地址:http://www.xiaoxiaozi.com/2009/11/27/1653/
版权所有 © 转载时必须以链接形式注明作者和原始出处!
@simaopig
这么快。。。还没有收到,哈哈
[回复]
@宅男
因为我之前就存在QQ邮箱里了,只是一个转发,瞬间就发出去了。如果一会儿还没收到的话,你再找我。嗯。
[回复]
@simaopig
这个主题是你现在用的的,还是Google code上的原始2.0.1.x版本
[回复]
@宅男
我用的,我没去Google Code下。嗯。
[回复]
@simaopig
哈哈,你的回复是我所见过的最快的,简直是神速。
[回复]
@宅男
呵呵,因为我的邮箱开着呢,一收到邮件就顺手回复一下,蛮快的。呵。
[回复]
@simaopig
打不开了。。内容编码错误,是个啥问题,你打开我的站瞧瞧。。。
[回复]
@宅男
应该是你站不支持gzip,你看我邮件里给你发的链接吧。改一下应该就可以了。
[回复]
@simaopig
gzip刚刚在cpanel里开了,也已经按照教程替换if ( extension_loaded(‘zlib’) and !ini_get(‘zlib.output_compression’) and ini_get(‘output_handler’) != ‘ob_gzhandler’ and ((version_compare(phpversion(), ’5.0′, ‘>=’) and ob_get_length() === false) or ob_get_length() === false) ) {
}但是还是不行
[回复]
@宅男
呃,那我就不清楚了。我没遇到这问题,也不知道啥原因。呵。
[回复]
@simaopig
:smile: 额 我再看看吧,谢谢你
[回复]
OK了。看来你给我的这个还是老版本,或许应该把所有的bug都fix了,然后打包上传直接供大家下载得了。
[回复]
@宅男
呵呵,这皮肤不是我的,所以我不做任何更改,否则对原作者不尊重。
只是原来的下载地址不太容易下载。就自己留了一下。呵。
[回复]
@simaopig
;-) ;-)
[回复]
他的ajax效果用的确实太多了,页面有些不流畅,我正打算删掉一些。
[回复]