您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> php编程 >> 正文

解决php接收shell返回的结果中文乱码问题

作者:佚名    责任编辑:admin    更新时间:2022-06-22

 shell输出的有中文,则php得到的中文返回结果为乱码,下面有个不错的解决方法,大家可以参考下

如果需要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);  }