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

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

Barbara Streisand
发布: 2024-10-26 20:51:03
原创
366 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板