Maison > développement back-end > tutoriel php > Explication détaillée et exemples de php produisant du json et affichant des caractères chinois en json

Explication détaillée et exemples de php produisant du json et affichant des caractères chinois en json

高洛峰
Libérer: 2023-03-04 10:14:01
original
2870 Les gens l'ont consulté

php 输出json及显示json中的中文汉字

在php中,我们经常需要将数组输出json,只需要使用json_encode函数处理一下数组即可,但有的时候数组里面有中文,使用json_encode函数处理后中文字符被编码成了Unicode,如何才能在json中显示中文呢?请看下文。

首先介绍一下php输出json格式:

一种最简单的用法,就是把数组直接输出为json,如下:

<?php
$arr = array(&#39;p1&#39;=>&#39;ni"hao&#39;,&#39;p2&#39;=>2,&#39;ch&#39;=>&#39;码农你好!&#39;);
$json = json_encode($arr);
echo $json;
?>
Copier après la connexion

输出的结果为:

{"p1":"ni\"hao","p2":2,"ch":"\u7801\u519c\u4f60\u597d\uff01"}

这里要注意:

双引号在json中会被自动编码为\",这个很好理解,js中字符串中是不允许出来单引号、双引号和反斜杠的。
中文字符被编码成了Unicode

如果是写接口,那直接这样输出就够了,中文无需去做处理。等到了客户端,再去把Unicode的中文转成汉字即可。但如果要在服务器端直接输出汉字出来,那我们可以做如下处理。

<?php
$arr = array(&#39;p1&#39;=>&#39;nihao&#39;,&#39;p2&#39;=>2,&#39;ch&#39;=>&#39;码农你好!&#39;);
$json = json_encode($arr);
echo decodeUnicode($json);
 
function decodeUnicode($str){
  return preg_replace_callback(&#39;/\\\\u([0-9a-f]{4})/i&#39;,
    create_function(
      &#39;$matches&#39;,
      &#39;return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");&#39;
    ),
    $str);
}
?>
Copier après la connexion

   

输出:

{"p1":"ni\"hao","p2":2,"ch":"码农你好!"}

这个操作很简单,其实就是把输出结果匹配一下,把Unicode还原成了汉字。

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多php 输出json及显示json中的中文汉字详解及实例相关文章请关注PHP中文网!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal