您现在的位置是:网站首页>>PHP>>php
php 解决json_encode 时中文出现unicode编码
发布时间:2018-09-28 09:30:49作者:wangjian浏览量:388点赞量:0
在PHP中,我们使用json_encode将数字转化为json数据时,如果数字中有中文时,中文会被转换成 unicode 编码,例:public function actionIndex() {
$array = ['这是测试的中文','this is english'];
echo json_encode($array);
}
输出结果为:["\u8fd9\u662f\u6d4b\u8bd5\u7684\u4e2d\u6587","this is english"]
这种结果是正确的,也很常见;并且在 javascript 中是可以正常解析的。但是,我们有时候并不需要 unicode 编码,比如数据库的可见性。这个时候也可以实现,解决方法是,在 json_encode 之前,对中文进行 urlencode(),然后再进行转 json,最后将 json 进行 urldecode() 转换回来就可以
例:
public function actionIndex() {
$array = ['这是测试的中文','this is english'];
$data = [];
foreach ($array as $model){
$data[] = urlencode($model);
}
echo urldecode(json_encode($data));
}
输出结果为:
["这是测试的中文","this is english"]
0
+1