Heim >Backend-Entwicklung >PHP-Tutorial >如何正确运用PHP json_encode函数进行中文转换_PHP

如何正确运用PHP json_encode函数进行中文转换_PHP

WBOY
WBOYOriginal
2016-06-01 12:20:34902Durchsuche

JSON

json_encode 和 json_decode

这两个函数的具体用法 网上有很多相关的文章 ,本文主要介绍 用json_encode 时中文无法转换的解决方案,本文假设文件所用的编码为gb2312;

先写出所需的数组

$json = array (
0 =>
array (
'id' => '13',
'name' => '乒乓球',
),
1 =>
array (
'id' => '17',
'name' => '篮球',
)
)
?>

如果直接用PHP json_encode函数

echo json_encode($json);
?>

结果为:

[{"id":"13","name":null}
,{"id":"13","name":null}]
?>

可以看到汉字没有被转义都为null,这是因为json仅仅转义encoding编码(类似于:%B0%AE),故上面语句应该先转换编码

foreach ($ajax as $key=>$val)
{
$ajax[$key]['name'] =
urlencode($val['name']);
}
echo json_encode($json);
?>

客户端js代码

用上面的代码js会报错 说编码不符合标准

原因是因为js 中decodeURI 仅仅支持utf8 转码。所以 ,PHP json_encode函数的代码应该为下面的代码

foreach ($ajax as $key=>$val)
{
$ajax[$key]['name'] =
urlencode(iconv('gb2312',
'utf-8',$val['name']));
}
echo json_encode($json);
?>

以上就是使用PHP json_encode函数在实际操作中出现问题的解决方法。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn