由于IIS和Apache编码方式不同,ThinkPHP在Apache中不会出现上述问题,但是放到IIS中就会出现上面的情况,是有用IIS编码不同导致中文乱码,才无搜索结果。那么解决办法就是判断服务器类型来设置编码
搜索到文件Think.class.php(路径为\Framework\Lib\Core\Think.class.php),打开文件找到
static private function buildApp() {
在下面写入
//IIS下pathinfo 汉字转化编码
if(false!==stripos($_SERVER['SERVER_SOFTWARE'],'IIS')){
$_SERVER['PATH_INFO']=iconv('gbk', 'utf-8//IGNORE', $_SERVER['PATH_INFO']);
}
即可解决问题 |