json_encode 中文显示问题解决方法
json已经成为当前web开发最常用的数据格式,php也从5.2开始支持json和数组的转换函数 json_encode 和 json_decode 。但使用过程中我们会发现,(下面以“你”这个汉字为例)通过json_encode 函数转换后的中文全部变成了类似 u4f60 (你)这样的编码,虽然不影响程序执行,但是很不直观.
首先,json_encode 对中文的处理是转成了对应的 unicode 码的十六进制表示符 u4f60,(和 js 的 escape 函数类似(%u4f60)),即 0x4f60。因此,我们只需要将 unicode 码(UCS-2)转成 utf-8 编码的汉字即可,函数如下:
<?php /** * json_encode 支持中文版 * @param mixed $data 参数和 json_encode 完全相同 */ function json_encode_cn($data) { $data = json_encode($data); return preg_replace("/u([0-9a-f]{4})/ie", "iconv('UCS-2', 'UTF-8', pack('H*', '$1'));", $data); } ?>
在这里,首先将目标数据转成 unicode 编码码的json串,然后利用正则将对应的 u 开头的四位字母替换成对应的文字,然后再次转码即可。preg_replace 正则中的 e 允许第二个参数执行 eval 操作,首先匹配出 uxxxx ,然后通过pack 函数将十六进制数值 xxxx 转成Unicode编码的字符,然后再将 Unicode 码转成 utf-8 码,然后就可以看到正常的汉字了。
另一种json_encode()不支持中文字符的解决方案,代码如下:
<?php /** * 对数组和标量进行 urlencode 处理 * 通常调用 wphp_json_encode() * 处理 json_encode 中文显示问题 * @param array $data * @return string */ function wphp_urlencode($data) { if (is_array($data) || is_object($data)) { foreach ($data as $k => $v) { if (is_scalar($v)) { if (is_array($data)) { $data[$k] = urlencode($v); } else if (is_object($data)) { $data->$k = urlencode($v); } } else if (is_array($data)) { $data[$k] = wphp_urlencode($v); //递归调用该函数 } else if (is_object($data)) { $data->$k = wphp_urlencode($v); } } } return $data; } /** * json 编码 * * 解决中文经过 json_encode() 处理后显示不直观的情况 * 如默认会将"中文"变成"u4e2du6587",不直观 * 如无特殊需求,并不建议使用该函数,直接使用 json_encode 更好,省资源 * json_encode() 的参数编码格式为 UTF-8 时方可正常工作 * * @param array|object $data * @return array|object */ function ch_json_encode($data) { $ret = wphp_urlencode($data); $ret = json_encode($ret); return urldecode($ret); } ?>
文章地址:
转载随意^^请带上本文地址!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Call of Duty Warzone est un jeu mobile récemment lancé. De nombreux joueurs sont très curieux de savoir comment définir la langue de ce jeu sur le chinois. En fait, c'est très simple. Il suffit aux joueurs de télécharger le pack de langue chinoise, puis vous pouvez le faire. modifiez-le après l'avoir utilisé. Le contenu détaillé peut être appris dans cette introduction à la méthode de réglage chinoise. Comment définir la langue chinoise pour le jeu mobile Call of Duty : Warzone 1. Entrez d'abord dans le jeu et cliquez sur l'icône des paramètres dans le coin supérieur droit de l'interface. 2. Dans la barre de menu qui apparaît, recherchez l'option [Télécharger] et cliquez dessus. 3. Sélectionnez [SIMPLIFIEDCHINESE] (chinois simplifié) sur cette page pour télécharger le package d'installation en chinois simplifié. 4. Revenir aux paramètres

La feuille de calcul Excel est l'un des logiciels de bureau que de nombreuses personnes utilisent actuellement. Certains utilisateurs, parce que leur ordinateur est un système Win11, donc l'interface anglaise s'affiche, ils souhaitent passer à l'interface chinoise, mais ils ne savent pas comment l'utiliser. Pour résoudre ce problème, ce problème L'éditeur est là pour répondre aux questions de tous les utilisateurs. Jetons un coup d'œil au contenu partagé dans le didacticiel du logiciel d'aujourd'hui. Tutoriel pour passer d'Excel au chinois : 1. Entrez dans le logiciel et cliquez sur l'option "Fichier" sur le côté gauche de la barre d'outils en haut de la page. 2. Sélectionnez « options » parmi les options ci-dessous. 3. Après être entré dans la nouvelle interface, cliquez sur l'option « langue » à gauche

Comment afficher correctement les caractères chinois dans PHPDompdf Lorsque vous utilisez PHPDompdf pour générer des fichiers PDF, il est courant de rencontrer le problème des caractères chinois tronqués. En effet, la bibliothèque de polices utilisée par Dompdf ne contient pas de jeux de caractères chinois. Afin d'afficher correctement les caractères chinois, nous devons définir manuellement la police de Dompdf et nous assurer de sélectionner une police prenant en charge les caractères chinois. Voici quelques étapes spécifiques et exemples de code pour résoudre ce problème : Étape 1 : Téléchargez le fichier de police chinoise Tout d'abord, nous avons besoin

Configuration de VSCode en chinois : un guide complet Dans le développement de logiciels, Visual Studio Code (VSCode en abrégé) est un environnement de développement intégré couramment utilisé. Pour les développeurs qui utilisent le chinois, la configuration de VSCode sur l'interface chinoise peut améliorer l'efficacité du travail. Cet article vous fournira un guide complet, détaillant comment définir VSCode sur une interface chinoise et fournissant des exemples de code spécifiques. Étape 1 : Téléchargez et installez le pack de langue. Après avoir ouvert VSCode, cliquez sur la gauche.

Titre : Un moyen efficace de réparer les caractères chinois tronqués dans PHPDompdf Lorsque vous utilisez PHPDompdf pour générer des documents PDF, les caractères chinois tronqués sont un problème courant. Ce problème vient généralement du fait que Dompdf ne prend pas en charge les jeux de caractères chinois par défaut, ce qui entraîne un affichage incorrect du contenu chinois. Afin de résoudre ce problème, nous devons adopter des moyens efficaces pour résoudre le problème chinois tronqué de PHPDompdf. 1. Utilisez des fichiers de polices personnalisés. Un moyen efficace de résoudre le problème des caractères chinois tronqués dans Dompdf consiste à utiliser.

"WWE2K24" est un jeu de sports de course créé par Visual Concepts et sorti officiellement le 9 mars 2024. Ce jeu a été très apprécié et de nombreux joueurs souhaitent vivement savoir s'il aura une version chinoise. Malheureusement, jusqu'à présent, "WWE2K24" n'a pas encore lancé de version en langue chinoise. wwe2k24 sera-t-il en chinois ? Réponse : Le chinois n'est pas actuellement pris en charge. La version standard de WWE2K24 dans la région chinoise de Steam est au prix de 199 yuans, la version de luxe est de 329 yuans et l'édition commémorative est de 395 yuans. Le jeu a des exigences de configuration relativement élevées et il existe certaines normes en termes de processeur, de carte graphique ou de mémoire opérationnelle. Configuration officielle recommandée et introduction à la configuration minimale :

Conseils pour résoudre les caractères chinois tronqués écrits par PHP dans des fichiers txt Avec le développement rapide d'Internet, PHP, en tant que langage de programmation largement utilisé, est utilisé par de plus en plus de développeurs. Dans le développement PHP, il est souvent nécessaire de lire et d'écrire des fichiers texte, y compris des fichiers txt qui écrivent du contenu chinois. Cependant, en raison de problèmes de format d'encodage, le chinois écrit apparaîtra parfois tronqué. Cet article présentera quelques techniques pour résoudre le problème des caractères chinois tronqués écrits dans des fichiers txt par PHP et fournira des exemples de code spécifiques. Analyse de problèmes en PHP, texte

Comment changer le chinois en anglais dans Google Chrome ? Certains amis souhaitent régler Google Chrome sur l'anglais afin de pouvoir améliorer continuellement leur anglais pendant leur utilisation. Alors comment le mettre en anglais ? Google Chrome est le chinois par défaut. Ci-dessous, je vais vous montrer comment définir la langue de Google Chrome sur l'anglais. Étapes de configuration : 1. Ouvrez [Google Chrome], comme indiqué dans la figure ci-dessous. 2. Cliquez sur le menu [trois points] dans le coin supérieur droit de l'interface de Google Chrome, comme indiqué dans la figure ci-dessous. 3. Après être entré dans la page de menu, recherchez [Paramètres], comme indiqué dans la figure ci-dessous. 4. Après avoir accédé à la page des paramètres, cliquez sur l'option [Langue], comme indiqué dans la figure ci-dessous. 5. Sélectionnez [Ajouter une langue] dans l'interface linguistique, comme indiqué dans la figure ci-dessous.
