json_encode 处理中文乱码

$data="JSON中文";   
     $newData=iconv("GB2312","UTF-8//IGNORE",$data);   

//ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符都不会被保存。   
     //或是("GB2312","UTF-8",$data);        echo $newData;   


<?php   
    $testJSON=array('name'=>'中文字符串','value'=>'test');   
    //echo json_encode($testJSON);   
    foreach ( $testJSON as $key => $value ) {   
        $testJSON[$key] = urlencode ( $value );   
    }   
    echo urldecode ( json_encode ( $testJSON ) );   
?>   

查看输出结果为:

 

{“name”:”中文字符串”,”value”:”test”}
到此,成功地输出了中文字符。随意使用json_encode吧。这样子在PHP后台输出的JSON字符串在前台javascript中Ajax接收后eval出来也不会出现中文乱码,因为js在处理JSON格式数据是也是以UTF8的形式进行的,与PHP类似,故接收PHP页面的JSON字符串不会出现问题。



你可能感兴趣的:(字符串,中文)