前言
当使用
json_encode
函数将中文转换为 JSON 字符串时,有时候会遇到中文字符被转义的情况。解决这个问题,可以使用下面的方法:
1.在调用 json_encode
函数之前,先将要转换的数据进行 Unicode 转义。使用 json_encode
函数的 JSON_UNESCAPED_UNICODE
选项来实现,该选项会确保中文字符不被转义为 Unicode 转义序列。示例如下:
$arr = [
"北京",
"上海",
"天津",
"重庆"
];
echo json_encode($arr);
//输出:["\u5317\u4eac","\u4e0a\u6d77","\u5929\u6d25","\u91cd\u5e86"]
echo json_encode($arr, JSON_UNESCAPED_UNICODE);
//输出:["北京","上海","天津","重庆"]
- 如果步骤1仍然没有解决问题,可能是因为你的 PHP 环境的默认字符集设置不正确。可以在 PHP 文件的开头添加下面的代码来指定字符集为 UTF-8:
header('Content-Type: text/html; charset=UTF-8');
这样做会确保输出的 JSON 字符串使用 UTF-8 字符集编码,从而避免中文字符被转义。
结语
通过以上步骤,你应该能够解决
json_encode
中文字符被转义的问题,正确地输出带有中文的 JSON 字符串。