Maison >développement back-end >Problème PHP >Comment convertir php json en chinois

Comment convertir php json en chinois

藏色散人
藏色散人original
2021-09-17 10:48:493496parcourir

Comment convertir php json en chinois : 1. Urlencode le champ chinois 2. Utilisez la fonction json_encode pour encoder ; 3. Utilisez urldecode pour traiter le résultat.

Comment convertir php json en chinois

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur Dell G3

Comment convertir php json en chinois ? Comment PHP convertit-il normalement les chaînes au format json chinois ? Comment convertir les chaînes au format json ? Deux fonctions sont fournies dans le manuel PHP :

json_encode : Encodage JSON des variables

json_decode : Encodage des chaînes de caractères au format JSON

Regardons un exemple. ci-dessous :

 $arr = ['a', 'b', 'c'];echo json_encode($arr);

Le résultat est :

["a","b","c"]

Cependant, lorsque nous mettons des caractères chinois dans le tableau, des problèmes surviendront :

 $arr = [    '世界',    '你好',];echo json_encode($arr);

Le résultat de sortie est :

["\u4e16\u754c","\u4f60\u597d"]

Ce résultat n'est évidemment pas ce que nous voulons, mais pourquoi cela arriver? Parce que lorsque notre valeur contient du chinois, lorsque PHP effectue un encodage json dessus, la couche inférieure effectuera un encodage unicode sur le chinois, rendant le résultat illisible

Alors, comment le résoudre ?

Méthode 1

Vous pouvez utiliser les méthodes urlencode et urldecode pour contourner le processus de transcodage en unicode. Commencez par urlencode le champ chinois, puis json_encode, et enfin utilisez urldecode pour traiter le résultat, afin que le chinois puisse être affiché normalement. Le code spécifique est le suivant :

 $arr = [    '世界',    '你好',];echo urldecode(json_encode(array_map('urlencode', $arr)));

Le résultat de sortie est :

["世界","你好"]

Méthode 2

Depuis la version PHP5.4, le responsable a ajouté une nouvelle option à Json : JSON_UNESCAPED_UNICODE. Après avoir ajouté cette option, le chinois ne sera pas automatiquement codé. Le code spécifique est le suivant :

 $arr = [    '世界',    '你好',];echo json_encode($arr, JSON_UNESCAPED_UNICODE);

Le résultat est :

["世界","你好"]

Regardez, c'est le résultat que nous voulons :)

Remarque

Ce à quoi nous devons faire attention, c'est que puisque json_encode et json_decode ne prennent en charge que utf-8 caractères codés, si vous souhaitez utiliser la fonction json pour les caractères gbk, vous devez les convertir.

Apprentissage recommandé : "

Tutoriel vidéo PHP

"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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