在 windows iis上面安装了wordpress 出现了几个小问题
wordpress 中文tag 分类目录 乱码问题解决方法 这是其中一个 原因是因为 iis 在解析url的时候 对于路径中的utf-8编码内容,会将其转换成GBK编码,这样就导致在WordPress中,对$_SERVER[’PATH_INFO’]和$_SERVER[’REQUEST_URI’]取值时取到的是GBK编码的url,但是WordPresss默认是用UTF-8编码的,所以中文就转成了乱码,再用作SQL参数去数据库查询的时候就找不到记录了。
解决方法
找到 wp-includes\classes.php 这个文件,先备份一个。打开这个文件,找到
<?php //... if ( isset($_SERVER['PATH_INFO']) ) $pathinfo = $_SERVER['PATH_INFO']; else $pathinfo = ''; $pathinfo_array = explode('?', $pathinfo); $pathinfo = str_replace("%", "%25", $pathinfo_array[0]); $req_uri = $_SERVER['REQUEST_URI']; //... ?>
自己对 $pathinfo 和 $req_uri 做一个 GBK –> UTF-8 编码转换
<?php //... if ( isset($_SERVER['PATH_INFO']) ) $pathinfo = mb_convert_encoding($_SERVER['PATH_INFO'], 'UTF-8', 'GBK'); else $pathinfo = ''; $pathinfo_array = explode('?', $pathinfo); $pathinfo = str_replace("%", "%25", $pathinfo_array[0]); $req_uri = mb_convert_encoding($_SERVER['REQUEST_URI'], 'UTF-8', 'GBK'); //... ?>
要求php要开启 PHP开启了 mb_string
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。