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

 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); 

 

时间: 2024-11-03 14:21:23

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

解决php接收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, '?\\'

【转载】彻底解决Linux下MySQL 5.5的中文乱码问题

PS:昨天一同事遇到mysql 5.5中文乱码问题,找我解决.解决了,有个细节问题网上没人说,我就总结一下. 一.登录MySQL查看用SHOW VARIABLES LIKE 'character%';下字符集,显示如下: +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+---------------------------

解决python2.7 查询mysql时出现中文乱码_python

问题: python2.7 查询或者插入中文数据在mysql中的时候出现中文乱码 --- 可能情况: 1.mysql数据库各项没有设置编码,默认为'latin' 2.使用MySQL.connect的时候没有设置默认编码 3.没有设置python的编码,python2.7默认为'ascii' 4.没有解码 --- 解决方法: 1.设置mysql的编码 ubuntu执行下列语句: ** sudo vim /etc/mysql/my.cnf ** 然后在里面插入语句: [client] default

解决用jConnect连接Sybase数据库时中文乱码的问题

确保数据库使用中文字符集,如 eucgb, utf8, cp936, 同时, 在 jconnect 编程时设定必要的连接属性, 包括 charset (要求与数据库保持一致) 和 jconnect_version. 例如: jconnect 4.2: jdbc:sybase:Tds:hostname:port/dbname?charset=eucgb&jconnect_version=4 jconnect 5.2: jdbc:sybase:Tds:hostname:port/dbname?cha

解决Excel数据导入sqlite中的中文乱码问题

具体步骤: 一.txt转excel     首先将网上下载的资源保存成txt文本文件,打开excel,点击"数据--导入数据--获取数据源",根据你的文本格式选择相应的分割符号,然后根据提示的txt格式导入到excel中. 设置完成后,txt文本就成功导入到excel中了.     下面的文字转码是非常重要,由于excel默认是gb2312编码或其他形式,需要将其转为utf-8编码形式,不然导入sqlite中后,中文必然是乱码的.具体操作如下:将excel保存成.csv格式,关闭文件,

解决PHP中file_get_contents抓取网页中文乱码问题

根据网上有朋友介绍说原因可能是服务器开了GZIP压缩. 下面是用firebug查看我的博客的头信息,Gzip是开了的. 请求头信息原始头信息  代码如下 复制代码 Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding gzip, deflate Accept-Language zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 Connection keep

如何解决从mysql传值到jsp出现中文乱码问题

问题描述 问题如上 请教各位 问题补充:administratormaster 写道 解决方案 那个是java编码的机制 ,你要在数据库里查看中文 教你一个方法:(不是在可视化界面上查看)在选择完数据库的时候,执行下面命令mysql--> set names gbk;然后再查看的就是中文了mysql -->select * from user;或者你吧字符集改成gbk mysql--> charset gbk;查看的数据库 肯定是中文的 (注意 这里没有UTF-8只有GBK)问题解决了

解决mysql的默认字符编码和中文乱码问题

MySQL的默认编码是Latin1,不支持中文,那么如何修改MySQL的默认编码呢,下面以UTF-8为例来说明 启动mysql后,以root登录mysql mysql > show variables like 'character%';  #执行编码显示 +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+---------

JQuery ajax 返回json时出现中文乱码该如何解决_AJAX相关

使用jQuery ajax调用的返回json,中文乱码问题 Js代码如下: $.ajax({ url: '/test/testAction.do?method=test', type: 'POST', dataType: 'json', timeout: 5000, async: false, error: function(){ alert('获取数据失败!'); }, success: function(json){ jsObject = eval(json); } }); return j