我的主機環境是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變成亂碼了。我去資料庫看了下,編碼是對的。我也沒有安裝快取、分頁類外掛。
之後我去谷歌上搜索,最多的方法還是修改第一段程式碼的方法,但是我之前已經改過了,沒有解決這個問題。試了其他一些方法也不奏效,求教問題出在哪裡