A-A+

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

2020年08月30日 我爱编程 暂无评论

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

如果需要php执行一些shell命令,查看显示结果的话,如果shell输出的有中文,则php得到的中文返回结果可能类似是 “?\230?\180?\187?\229?\138?\168” 的字符串。那么需要这个函数转译:

  1. //这个函数接收的都是路径,所以判断了文件扩展名 
  2. function shell2txt($a){
  3. $ary = explode('/'$a);
  4. foreach($ary as $k => $v){
  5. if(strpos($v'?\\') !== false){
  6. $_ary = explode('?\\'$v);
  7. foreach($_ary as $_k=>$_v){
  8. if($_v == ''continue;
  9. //判断是否有文件扩展名 
  10. $end = '';
  11. if(strpos($_v'.') !== false){
  12. $end = substr($_vstrpos($_v'.'));
  13. }
  14. $_ary[$_k] = dechex($_v).$end;
  15. }
  16. $ary[$k] = implode('%'$_ary);
  17. }
  18. }
  19. $a = implode('/'$ary);
  20. return urldecode($a);
  21. }

给我留言

Copyright © 四季博客 保留所有权利.   Theme  Ality

用户登录