使中文不被json_encode编码成unicode的方法


使用 php 自带的 json_encode 函数对数据进行编码时,中文都会变成 unicode,导致不可读,

并且增加传输数据的大小

比如:

对字符串“json在线解析工具”进行 json_encode 后,

输出的是”\u006a\u0073\u006f\u006e\u5728\u7ebf\u89e3\u6790\u5de5\u5177”,那么如何使得中文不被 json_encode 不编码成 unicode 呢,有两种方法:

1. 先将中文字段 urlencode,json_encode 后,再用 urldecode,也可以显示中文。

echo urldecode(json_encode(urlencode("json在线解析工具")));

2. 如果使用的 PHP 版本是 5.4 以上的版本,

json_encode 函数已经新增了一个选项: JSON_UNESCAPED_UNICODE。

加上这个选项后,就不会自动把中文编码了。

echo json_encode("json在线解析工具", JSON_UNESCAPED_UNICODE);