首页 >后端开发 >php教程 >如何在 PHP JSON 输出中编码 UTF-8 字符而不进行 Unicode 转义?

如何在 PHP JSON 输出中编码 UTF-8 字符而不进行 Unicode 转义?

Barbara Streisand
Barbara Streisand原创
2024-10-26 20:51:03368浏览

How to Encode UTF-8 Characters in PHP JSON Output without Unicode Escaping?

在 PHP JSON 输出中保留 UTF-8

问题:

如何防止 PHP 的 json_encode 函数转义非-ASCII 字符作为 Unicode 序列?所需的输出是 UTF-8 编码字符,而不是 unicode 序列。例如,包含值“á”的数组应编码为 {"a":"á"},而不是 {"a":"u00e1"}。

答案:

虽然 JSON 规范允许两种编码格式,但 JSON 解码器同等对待 {"a":"u00e1"} 和 {"a":"á"}。

对于 PHP 版本 5.4 及更高版本,json_encode提供 JSON_UNESCAPED_UNICODE 选项。此选项输出纯 UTF-8 编码字符而不转义。

<code class="php">$json = json_encode($arr, JSON_UNESCAPED_UNICODE);</code>

对于较旧的 PHP 版本,请考虑以下选项:

  • 自定义 JSON 编码器:实现一个自定义 JSON 编码器,省略非 ASCII 字符的字符转义。
  • Pear 的 JSON 编码器: 通过删除第 349 至 433 行来修改 Pear JSON 编码器。此部分包含转义逻辑。

以上是如何在 PHP JSON 输出中编码 UTF-8 字符而不进行 Unicode 转义?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn