phpjson_decode解析中文
时间:2021-07-01 10:21:17
帮助过:126人阅读
$arr = array ('a'=>'北京');
echo json_encode($arr);
以上代码执行后输出:
{“a”:”\u5317\u4eac”}
PHP 底层已经做了 unicode 处理,如果嫌它不够直观,可以利用 urlencode 和 urldecode 方法绕过这个转码为 unicode 的过程:
$arr = array ('a'=>urlencode('北京'));
echo urldecode(json_encode($arr));
以上代码执行后输出:{“a”:”北京”}
但是对于抓取来的 json 我们没办法修改别人的服务器,有这么一个方法可处理;
$code = json_encode($str);
$code = preg_replace("#\\\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", $code);
print_r( mb_convert_encoding(stripslashes($code), "GBK", "UTF-8") );
另:在 php cli 模式下不能输出 utf-8 编码的字符,原因是 cmd 下只能显示 936 编码
处理办法是,把utf-8 编码的内容用 mb_convert_encoding 函数转化一下:如下
mb_convert_encoding("utf-8 的内容", "GBK", "UTF-8");
以上就介绍了php json_decode 解析中文,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。