Karp 的技术博客

在 PHP 中,使用 json_encode() 函数将数据编码为 JSON 格式时,默认情况下,中文字符会被转义为 Unicode 形式,例如 \u4e2d\u6587。如果您希望直接输出中文字符而不是转义形式,可以使用 JSON_UNESCAPED_UNICODE 选项。

1. 使用 JSON_UNESCAPED_UNICODE

1.1 基本用法

下面是如何使用 JSON_UNESCAPED_UNICODE 的示例:

<?php
$data = [
    'greeting' => '你好',
    'language' => '中文',
    'message' => '欢迎使用 JSON_UNESCAPED_UNICODE!'
];

// 默认的 json_encode
$json_default = json_encode($data);
echo "默认编码:\n$json_default\n\n";

// 使用 JSON_UNESCAPED_UNICODE
$json_unicode = json_encode($data, JSON_UNESCAPED_UNICODE);
echo "使用 JSON_UNESCAPED_UNICODE:\n$json_unicode\n";
?>
PHP

1.2 输出结果

运行上述代码,您将看到如下输出:

默认编码:
{"greeting":"\u4f60\u597d","language":"\u4e2d\u6587","message":"\u6b22\u8fce\u4f7f\u7528 JSON_UNESCAPED_UNICODE!"}

使用 JSON_UNESCAPED_UNICODE:
{"greeting":"你好","language":"中文","message":"欢迎使用 JSON_UNESCAPED_UNICODE!"}
CSS

2. 适用场景

2.1 API 返回数据

在创建 API 时,使用 JSON_UNESCAPED_UNICODE 可以使返回的 JSON 数据更易于阅读,特别是当数据包含中文文本时。

2.2 前端处理

前端 JavaScript 可以直接处理中文字符,避免了额外的字符解码。

3. 结合其他选项

您可以将 JSON_UNESCAPED_UNICODE 与其他选项结合使用,例如:

$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
echo $json;
PHP

3.1 输出格式化的 JSON

使用 JSON_PRETTY_PRINT 可以使输出的 JSON 更加美观:

{
    "greeting": "你好",
    "language": "中文",
    "message": "欢迎使用 JSON_UNESCAPED_UNICODE!"
}
JSON

php

版权属于:karp
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2024年10月21日 03:47
0

目录

来自 《让 JSON 更懂中文 (`JSON_UNESCAPED_UNICODE`)》