PHP 中 JSON_UNESCAPED_UNICODE 和 JSON_UNESCAPED_SLASHES 的作用
JSON_UNESCAPED_UNICODE和JSON_UNESCAPED_SLASHES都是 PHP 中json_encode()函数的编码选项。
1. JSON_UNESCAPED_UNICODE 是什么
JSON_UNESCAPED_UNICODE 用于让 JSON 数据中的中文保持原样,不转换成 Unicode 编码。
默认情况下:
$data = [
'name' => '张三',
];
echo json_encode($data);输出:
{"name":"\u5f20\u4e09"}使用 JSON_UNESCAPED_UNICODE:
echo json_encode($data, JSON_UNESCAPED_UNICODE);输出:
{"name":"张三"}这样生成的 JSON 数据更容易阅读。
2. JSON_UNESCAPED_SLASHES 是什么
JSON_UNESCAPED_SLASHES 用于让 JSON 数据中的斜杠 / 保持原样,不转换成 \/。
默认情况下:
$data = [
'url' => 'https://www.example.com/user',
];
echo json_encode($data);输出:
{"url":"https:\/\/www.example.com\/user"}使用 JSON_UNESCAPED_SLASHES:
echo json_encode($data, JSON_UNESCAPED_SLASHES);输出:
{"url":"https://www.example.com/user"}这个选项通常用于包含网址、接口地址或文件路径的数据。
3. JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES 代表什么
| 是 PHP 中的按位或运算符,可以把多个 JSON 编码选项组合起来。
$data = [
'name' => '张三',
'url' => 'https://www.example.com/user',
];
$json = json_encode(
$data,
JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES
);
echo $json;输出:
{"name":"张三","url":"https://www.example.com/user"}组合使用后,两个选项会同时生效:
JSON_UNESCAPED_UNICODE:中文不会被转换成\uXXXX。JSON_UNESCAPED_SLASHES:斜杠不会被转换成\/。
常见写法如下:
json_encode(
$data,
JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES
);版权所有
版权归属:念宇
