解决php接收shell返回的结果中文乱码问题 |
本文标签:php接收shell,中文乱码 如果需要php执行一些shell命令,查看显示结果的话,如果shell输出的有中文,则php得到的中文返回结果可能类似是 “?\230?\180?\187?\229?\138?\168” 的字符串 。那么需要这个函数转译: 复制代码 代码如下: //这个函数接收的都是路径,所以判断了文件扩展名 function shell2txt($a){ $ary = explode(/, $a); foreach($ary as $k => $v){ if(strpos($v, ?\\) !== false){ $_ary = explode(?\\, $v); foreach($_ary as $_k=>$_v){ if($_v == ) continue; //判断是否有文件扩展名 $end = ; if(strpos($_v, .) !== false){ $end = substr($_v, strpos($_v, .)); } $_ary[$_k] = dechex($_v).$end; } $ary[$k] = implode(%, $_ary); } } $a = implode(/, $ary); return urldecode($a); } |