Maison php教程 PHP开发 Solution à json_encode en php pour traiter les problèmes chinois brouillés gbk et gb2312

Solution à json_encode en php pour traiter les problèmes chinois brouillés gbk et gb2312

Dec 27, 2016 pm 04:15 PM

Cet article décrit comment json_encode en php gère le problème chinois tronqué de gbk et gb2312. La méthode spécifique est la suivante :

1.json_encode() Le chinois renvoie null pour le chinois en gbk/gb2312

.
$arr = array (
 array (
   'catid' => '4',
   'catname' => 'www.jb51.net',
   'meta_title' => '脚本之家'
  )
);
  
echo json_encode($arr);
Copier après la connexion

Résultat de l'exécution :

[{"catid":"4","catname":"www.jb51.net","meta_title":null}]
Copier après la connexion

Regardez "meta_title" : null Il avait à l'origine une valeur de "Script Home". Nous avons vérifié et le principe est que json_encode ne prend en charge que l'encodage uft-8

<?php
$data="JSON中文";
$newData=iconv("GB2312″,"UTF-8//IGNORE",$data);
echo $newData;
//ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符都不会被保存。
//或是("GB2312″,"UTF-8″,$data);
?>
Copier après la connexion

<🎜. >

2. La page PHP d'arrière-plan (la page est codée en UTF-8 ou les caractères ont été convertis en UTF-8) utilise json_encode pour convertir le tableau en PHP en une chaîne JSON. Par exemple :

<?php
$testJSON=array(&#39;name&#39;=>&#39;中文字符串&#39;,&#39;value&#39;=>&#39;test&#39;);
echo json_encode($testJSON);
?>
Copier après la connexion

Afficher le résultat de sortie :

{"name":"u4e2du6587u5b57u7b26u4e32″,"value":"test"}
Copier après la connexion

Visible Même si des caractères codés en UTF8 sont utilisés, des caractères chinois tronqués apparaissent lors de l'utilisation de json_encode. La solution est de traiter les caractères avec la fonction urlencode() avant d'utiliser json_encode, puis json_encode, puis d'utiliser la fonction urldecode() pour les reconvertir lors de la sortie du résultat. Les détails sont les suivants :

<?php
$testJSON=array(&#39;name&#39;=>&#39;中文字符串&#39;,&#39;value&#39;=>&#39;test&#39;);
//echo json_encode($testJSON);
foreach ( $testJSON as $key => $value ) {
$testJSON[$key] = urlencode ( $value );
}
echo urldecode ( json_encode ( $testJSON ) );
?>
Copier après la connexion

Afficher le résultat de sortie :

{"name":"中文字符串","value":"test"}
Copier après la connexion

Résumé : La fonction json_encode ne peut traiter que les chaînes uft8. Si elle est chinoise, elle ne gère probablement pas bien les octets, car les longueurs du chinois gbk et uft sont différentes. Cela ne sera pas présenté en profondeur.

Pour plus d'articles connexes sur la façon dont json_encode en PHP gère les problèmes gbk et gb2312 chinois tronqués, veuillez prêter attention au site Web PHP chinois !

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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