最近在做一个老的 PHP 项目的时候,json_encode 没有返回任何数据。
这是因为 json_encode 在处理字符的时候有不是 UTF-8 的字符异常了。
解决办法
其实这个方法提供了 JSON_UNESCAPED_UNICODE
参数
用PHP的json_encode来处理中文的时候, 中文都会被编码, 变成不可读的, 类似"\u***"的格式, 还会在一定程度上增加传输的数据量。
<?php
echo json_encode("中文");
//"\u4e2d\u6587"
在PHP5.4, 这个问题终于得以解决,Json新增了一个选项::JSON_UNESCAPED_UNICODE, 故名思议, 就是说, Json 不要编码 Unicode。
<?php
echo json_encode("中文", JSON_UNESCAPED_UNICODE);
//"中文"