我的主机环境是windows + iis,安装WordPress之后已经按照网上办法修改了class-wp.php里的部分代码,将字符由GBK转换为UTF-8。之后url里带有中文的文章可以正常打开了,但现在发现tag分页里的中文tag名还是乱码。
之前修改的转换编码的地方(class-wp.php 177行修改为下面代码):
$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? mb_convert_encoding($_SERVER['PATH_INFO'], "UTF-8", "GBK") : ''; //修改处
list( $pathinfo ) = explode( '?', $pathinfo );
$pathinfo = str_replace( "%", "%25", $pathinfo );
list( $req_uri ) = explode( '?', mb_convert_encoding($_SERVER['REQUEST_URI'], "UTF-8", "GBK") ); //修改处
$self = $_SERVER['PHP_SELF'];
$home_path = trim( parse_url( home_url(), PHP_URL_PATH ), '/' );
$home_path_regex = sprintf( '|^%s|i', preg_quote( $home_path, '|' ) );
现在tag的中文乱码如:
<a class='page-numbers' href='https://xxx.com/tag/����/page/2'>2</a>
<a class='page-numbers' href='https://xxx.com/tag/����/page/3'>3</a>
<a class='page-numbers' href='https://xxx.com/tag/����/page/4'>4</a>
<a class='page-numbers' href='https://xxx.com/tag/����/page/5'>5</a>
<a class='page-numbers' href='https://xxx.com/tag/����/page/6'>6</a>
中文的tag,第一页没有问题,后面的页码里的tag就变成乱码了。我去数据库里看了下,编码是对的。我也没有安装缓存、分页类插件。
之后我去谷歌上搜索,最多的办法还是修改第一段代码的方法,但是我之前已经改过了,没有解决这个问题。试了其他一些办法也不奏效,求教问题出在哪里