JSON遇到中文乱码问题的解决方法

遇到一个问题,就是讲中文消息以json格式推给微信服务器时,收到的消息是乱码。经过查找资料排查是这样的。

PHP5.2或以上的版本把json_encode作为内置函数来用,但是我们必须注意到json_encode只支持UTF8编码的字符,
 否则,中文乱码或者空值就出现了。
 解决方法:

 1、把所有的中文转为UTF-8编码(本身是utf8的话无须转)

 $data="JSON中文";  
  $newData=iconv("GB2312","UTF-8//IGNORE",$data); 
2、把中文的urlencode一下
  $testJSON=array('name'=>'中文字符串','value'=>'test');  
    //echo json_encode($testJSON);  
    foreach ( $testJSON as $key => $value ) {  
        $testJSON[$key] = urlencode ( $value );  
    }  
 3、然后json_encode之后再urldecode一下转回来
 $test_json_str = json_encode ($testJSON )
 echo urldecode ($test_json_str);
  查看输出结果为:
{“name”:”中文字符串”,”value”:”test”}
这样可以很好的解决中文JSON乱码问题。





  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值