PHPJSON编码后,中⽂乱码的解决⽅式
1,有些时候,需要写接⼝,传递⼀些中⽂值,那么JSON编码,会出现⽬前以下两种情况!
a.输出乱码
<?php
$testJSON=array('name'=>'中⽂字符串','value'=>'test');
echo json_encode($testJSON);
>
输出结果:{“name”:”\u4e2d\u6587\u5b57\u7b26\u4e32″,”value”:”test”}
b.不输出乱码
使⽤UTF8编码的字符,使⽤json_encode也出现了中⽂乱码。解决办法是在使⽤json_encode之前把字符⽤
函数urlencode()处理⼀下,然后再json_encode,输出结果的时候在⽤函数urldecode()转回来。具体如下:
<?php
$testJSON=array('name'=>'中⽂字符串','value'=>'test');
//echo json_encode($testJSON);
$testJSON=ReturnUrlencode($testJSON);
/**
* [ReturnUrlencode ⽤递归的⽅式来遍历所有的数组并且解析]
* @param [type] $arr [description]
*/
function ReturnUrlencode($arr){
foreach ($arr as $key => $value){
if(is_array($value)){
$arr[$key]=ReturnUrlencode($value);
}else{
$arr[$key]=urlencode($value);
phpjson格式化输出}
}
return $arr;
}
print_r(urldecode ( json_encode ( $testJSON ) ) );
>
输出结果:{“name”:”中⽂字符串”,”value”:”test”}
遍历递归算法!将数组中的所有值,urlencode!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。