有没有办法用编码UTF-8而不是Unicode返回PHP'json_encode'?

2022-08-30 09:42:19

有没有办法用编码UTF-8而不是Unicode返回PHP?json_encode

$arr=array('a'=>'á');
echo json_encode($arr);

mb_internal_encoding('UTF-8');并且不会修复它。$arr=array_map('utf8_encode',$arr);

结果:{"a":"\u00e1"}

预期结果: {“a”:“á”}


答案 1

{"a":"\u00e1"}并且是编写相同JSON文档的不同方法;JSON 解码器将解码 unicode 转义。{"a":"á"}

在 php 5.4+ 中,php 确实可以选择纯输出。在较旧的 php 版本上,您可以推出自己的不编码非 ASCII 字符的 JSON 编码器,或者使用 Pear 的 JSON 编码器并删除第 349 行到第 433 行。json_encodeJSON_UNESCAPED_UNICODE


答案 2

我解决了我的问题,这样做:

  • .php文件被编码为 ANSI。此文件中是用于创建 .json 文件的函数。
  • 我用来对数据进行编码;json_encode($array, JSON_UNESCAPED_UNICODE)

结果是一个编码为 ANSI 的 .json 文件,作为 UTF-8。


推荐