在 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