Position actuelle: Accueil> Derniers articles> Comment résoudre le problème du code chinois brouillé dans le codage et le décodage JSON en PHP?

Comment résoudre le problème du code chinois brouillé dans le codage et le décodage JSON en PHP?

M66 2025-07-11

La raison pour laquelle JSON encodage et décode les rencontres chinoises

Le chinois brouillé est un problème courant lors de l'utilisation du codage et du décodage JSON en PHP. Habituellement, cela est dû à un codage de caractères incohérent entre le serveur et le client. Cet article expliquera en détail comment résoudre ce problème en définissant le codage des caractères et la conversion manuelle de codage.

Solution 1: Définir le codage des caractères

Afin de s'assurer que le codage du caractère dans le processus de codage et de décodage JSON dans PHP est cohérent, le codage du caractère dans les informations d'en-tête HTTP peut être définie via la fonction d'en-tête (). Cela peut éviter l'apparition d'un code brouillé chinois. Voici un exemple de code:

en-tête ('contenu-type: application / json; charset = utf-8');

$ data = array (
    'name' => 'Zhang San',
    'Âge' => 25,
    'City' => 'Pékin'
));

$ json = json_encode ($ data, json_unescaped_unicode);

Echo $ JSON;

Dans cet exemple, nous évitons d'échapper aux caractères chinois en codage Unicode en définissant le codage des caractères de l'en-tête HTTP vers UTF-8, et en utilisant la fonction JSON_ENCODE () pour convertir les données contenant le chinois en format JSON, tout en spécifiant le paramètre JSON_UNESCACED_UNICODODE.

Solution 2: Conversion manuelle et encodage

Si la cohérence du codage des caractères entre le serveur et le client ne peut pas être assurée, vous pouvez convertir manuellement l'encodage pour éviter le code brouillé. Voici un exemple d'encodage de conversion manuelle:

$ data = array (
    'name' => 'li si',
    'Âge' => 30,
    'City' => 'Shanghai'
));

// Convertir manuellement l'encodage lors de l'encodage $ json = json_encode ($ data, json_unescaped_unicode);
$ JSON = MB_CONVERT_ENCODING ($ JSON, 'UTF-8', 'UTF-8');

// Convertir manuellement l'encodage pendant le décodage $ json = mb_convert_encoding ($ json, 'utf-8', 'utf-8');
$ data = json_decode ($ json, true);

var_dump ($ data);

Dans ce code, nous utilisons la fonction mb_convert_encoding () pour assurer la cohérence de l'encodage, évitant ainsi le problème du code brouillé chinois.

Conclusion

Pour résoudre le problème du code brouillé chinois lors du codage et du décodage JSON en PHP, il peut être réalisé en définissant le codage des caractères ou la conversion manuelle de codage. Quelle que soit la méthode utilisée, assurer la cohérence du codage entre le serveur et le client est la clé.

J'espère que la solution fournie dans cet article peut vous aider à résoudre efficacement le problème de l'encodage et du décodage JSON en PHP. Si vous avez d'autres questions, veuillez laisser un message à discuter.