php json 输出中文乱码的问题怎么处理啊,谢谢

输出后中文\u6ec7\u6c60\u5乱码,{"allcount":"107","listurl":"house","project":[{"projcode":"3410877100","projname":"\u6ec7\u6c60\u5}]}

header("Content-Type:text/html;charset=UTF-8");

$arr=array('1','2','三');

echo $arr['2']."<br />";

print_r($arr);

echo "<br />";

print_r(json_encode($arr)); 

echo "<br />";

print_r(json_decode(json_encode($arr)));

   

输出json数据会有 但是 翻译成数组后就行了

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-17
你这串数据原本的php变量应该是一个三维数组的。
如果你的网页编码是utf-8的话,应该可以解决,如果不是,那我就不知道了,
给你个提示,
<?php
$test0=array();
$test0['1']='我你他';
$test0['2']="test";
//将数组遍历,每个变量进行编码
foreach($test0 as $key=>$val){
$test[$key]=urlencode($val);
}

//json化
$test2=json_encode($test);
//变回来,就不会乱码了
$test3=urldecode($test2);
echo $test3;
?>
这样的转化后的json格式个字符串就不会乱码了,不过我这个是一维数组,遍历循环比较简单,你那个json格式的变量应该是一个三维数组(我猜的)。之后靠你自己了,至于上面为什么这么做,网上很多的!希望能帮到你!追问

$a = '{"allcount":"107","listurl":"house","project":[{ "projcode":"3410877100", "projname":"eeee", "housecount":"撒大师的"}]}';
$array = json_decode(urlencode($a),1) ;
$rrt=urldecode($array );
echo $array;
那这段代码中文怎么处理啊

追答

撒大师的 这不是没乱码吗,你直接转化就可以变成数组了,
$a=json_decode($a,true);
var_dump($a);

追问

可是百度地图要这样的JOSN格式才能识别啊,怎么办的{"allcount":"107","listurl":"house","project":[{ "projcode":"3410877100", "projname":"eeee", "housecount":"撒大师的"}]}

追答

不明白你的需求,你既然说百度地图需要这样的josn格式,你就拼装给他这样的数据,他是一个三维的数组,至于该怎么拼起来,你把这个json格式的数据,还原成原先的数组,看下就明白了!

本回答被提问者采纳
第2个回答  2012-12-17
这是JSON字符串,里面不能有中文的,这乱码是正常的追问

中文怎么处理啊

追答

不需要处理,把这个json串 json_decode 一下中文就正常了

第3个回答  2012-12-29
json_decode()就好了,json后的中文本身就是乱码
第4个回答  2021-11-30
是想要这种效果吗?
echo json_encode($array,JSON_UNESCAPED_UNICODE);
相似回答