PHP json_encode中文被转义及乱码的解决方案

php 2023-07-04 665次浏览

前言

当使用 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. 如果步骤1仍然没有解决问题,可能是因为你的 PHP 环境的默认字符集设置不正确。可以在 PHP 文件的开头添加下面的代码来指定字符集为 UTF-8:
header('Content-Type: text/html; charset=UTF-8');

这样做会确保输出的 JSON 字符串使用 UTF-8 字符集编码,从而避免中文字符被转义。

结语

通过以上步骤,你应该能够解决 json_encode 中文字符被转义的问题,正确地输出带有中文的 JSON 字符串。

PHP json_encode中文被转义及乱码的解决方案

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址