IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:JSON_UNESCAPED_UNICODE

共 1 篇相关文章

IT 累计浏览 2,013

如何让 PHP json_encode 函数不转义中文?

这篇讲的是如何让 PHP 的 json_encode 函数在处理中文时不再输出 `\uXXXX` 形式的转义码。 文章开头就指出了一个常见的恼人场景:直接调用 json_encode,中文字符会被转义成看似“乱码”的 Unicode 序列。作者澄清,这并非 JSON 标准的要求,标准是允许直接保留 Unicode 字符的。根因在于 PHP 的 json_encode 在早期版本默认开启了转义。 文章核心给出两种解决方案。对于 PHP 5.4.0 及以上版本,可以简单地通过添加 `JSON_UNESCAPED_UNICODE` 选项来禁用此行为,这是最便捷的方式。针对无法升级的环境,作者则分享了一个自定义的 `Util::json_encode` 函数实现。这个函数递归地处理字符串、数组和对象,其核心思路是:当值是字符串时,手动处理必要的转义(如反斜杠、换行符),并直接将其包裹在引号中返回,从而跳过对中文字符的 Unicode 编码。文章最后也坦诚地提到,这个自定义实现在处理复杂的关联数组判断时可能未覆盖所有边界情况,留给读者根据实际情况调整。