您现在的位置是:网站首页 > 心得笔记

让json更懂中文(JSON_UNESCAPED_UNICODE)

盛悦2018-12-05710人围观
简介在工作期间,遇到一个关于json的问题,就是如果是中文,那么json就会自动将中文编码成Unicode,这样并不是说有问题,只是可读性大大降低。之前遇到这个问题的时候,一直以为是在http传输过程中造成的,但是真是原因是由于json_encode的时候,中文自动被编码成了Unicode

在工作期间,遇到一个关于json的问题,就是如果是中文,那么json就会自动将中文编码成Unicode,这样并不是说有问题,只是可读性大大降低。

之前遇到这个问题的时候,一直以为是在http传输过程中造成的,但是真实原因是由于json_encode的时候,中文自动被编码成了Unicode。

例如:

$array = array(
    'name' => '盛悦'
);
echo json_encode($array);

//执行结果是:

{"name":"\u76db\u60a6"}

 

但是从PHP5.4之后,这个更新了一个新的json_encode的特性,是专门针对中文问题的。那就是增加新特性——JSON_UNESCAPED_UNICODE。

例如:

$array = array(
    'name' => '盛悦'
);
echo json_encode($array, JSON_UNESCAPED_UNICODE);

//执行结果是:

{"name":"盛悦"}

 

总结:

这个特性帮助我们编码更高可读性的json,但是这个特性是在PHP5.4之后才增加的,所以PHP5.3版本暂不支持,会提示Use of undefined constant JSON_UNESCAPED_UNICODE