Ausführliche Erklärung und Beispiele für die JSON-Ausgabe von PHP und die Anzeige chinesischer Schriftzeichen in JSON

高洛峰
Freigeben: 2023-03-04 10:14:01
Original
2827 Leute haben es durchsucht

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;
?>
Nach dem Login kopieren

输出的结果为:

{"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);
}
?>
Nach dem Login kopieren

   

输出:

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

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

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

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!