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);
Copier après la connexion
Le résultat est :
["a","b","c"]
Copier après la connexion
Cependant, lorsque nous mettons des caractères chinois dans le tableau, des problèmes surviendront :
$arr = [ '世界', '你好',];echo json_encode($arr);
Copier après la connexion
Le résultat de sortie est :
["\u4e16\u754c","\u4f60\u597d"]
Copier après la connexion
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)));
Copier après la connexion
Le résultat de sortie est :
["世界","你好"]
Copier après la connexion
Copier après la connexion
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);
Copier après la connexion
Le résultat est :
["世界","你好"]
Copier après la connexion
Copier après la connexion
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!