伪静态中文乱码
时间:
阅读:429
伪静态中文乱码
最佳回答
wordpress用httpd.ini实现伪静态不支持中文的解决办法,网上一搜一大堆,基本上都是一样的,都可以的。
但是主要是如果连接中含有中文的话,就会转向到404页面,是通过httpd.ini解决不了的,我们必须来修改源代码,下面就说一下具体的修改方法:
修改的文件是网站目录下wp-include/classes.php文件(请先行备份)
(最新3.1版需要修改的文件是wp-include/class-wp.php)
第一步:找到
http://www.tfkc.cninfo = $_SERVER['PATH_INFO'];
修改为
http://www.tfkc.cninfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK');
第二步:找到
$req_uri = $_SERVER['REQUEST_URI'];
修改为
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK');
但是主要是如果连接中含有中文的话,就会转向到404页面,是通过httpd.ini解决不了的,我们必须来修改源代码,下面就说一下具体的修改方法:
修改的文件是网站目录下wp-include/classes.php文件(请先行备份)
(最新3.1版需要修改的文件是wp-include/class-wp.php)
第一步:找到
http://www.tfkc.cninfo = $_SERVER['PATH_INFO'];
修改为
http://www.tfkc.cninfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK');
第二步:找到
$req_uri = $_SERVER['REQUEST_URI'];
修改为
$req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK');
最新回答共有2条回答
-
清风若雨
回复这不是thinkphp的问题,是浏览器和你的程序共同导致的,有的浏览器会将连接中的url编码自动转换成明码,这样,你的程序拿到的关键词是明码的关键词,再进行url转码就会出现乱码。
浏览器这里我们没法控制,可以考虑将关键词以base64形式传递,这样就不会有此问题了,只需要修改下搜索控制器就好了。