Maison >développement back-end >Problème PHP >Comment convertir php json en chinois
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.
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 1Vous 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 2Depuis 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 :)RemarqueCe à 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!