php json_encode函数如何才能不编码中文汉字
PHP使用json_encode函数时,发现中文汉字被编码成"\u"开头的英文字符串,如何才能不被编码。
<?php
$data = array('中文汉字');
echo json_encode($data);
//返回:["\u4e2d\u6587\u6c49\u5b57"]
没有找到相关结果
已邀请:
1 个回复
liuliangsong - 80后IT民工
赞同来自:
可以使用"php -v"命令查看php版本号。
2、PHP 5.4.0以上版本:
如果PHP版本号大于5.4.0那就好办,直接将json_encode函数的第二个参数设置成JSON_UNESCAPED_UNICODE常量即可,这样json_encode函数就不会再将汉字编码。
<?php $data = array('name'=>'爱E族', 'url'=>'http://aiezu.com'); echo json_encode($data, JSON_UNESCAPED_UNICODE);输出:{"name":"爱E族","url":"http:\/\/aiezu.com"}3、PHP 5.4.0以下版本:
<?php $data = array('name'=>'爱E族', 'url'=>'http://aiezu.com'); $json_data = json_encode($data); $json_data = preg_replace_callback("#\\\\u([a-z0-9]{4})#i", function( $match ) { return mb_convert_encoding(pack("H*", $match[1]), "UTF-8", "UCS-2BE"); }, $json_data); echo $json_data;输出:{"name":"爱E族","url":"http:\/\/aiezu.com"}