Maison > développement back-end > Problème PHP > Comment résoudre les caractères tronqués de php json_encode ?

Comment résoudre les caractères tronqués de php json_encode ?

青灯夜游
Libérer: 2023-03-04 20:42:01
original
2841 Les gens l'ont consulté

Solution : 1. Définissez la valeur du deuxième paramètre de json_encode() sur "JSON_UNESCAPED_UNICODE" ; 2. Transcodez d'abord le texte avec urlencode, puis utilisez json_encode() pour encoder, puis effectuez le décodage urldecode. .

Comment résoudre les caractères tronqués de php json_encode ?

Recommandé : "Tutoriel vidéo PHP"

json_encode() est utilisé pour encoder des variables JSON en cas de succès ; une chaîne codée en JSON, ou FALSE en cas d'échec.

Dans le processus d'encodage, json_encode est souvent utilisé pour traiter le chinois. Cependant, un problème se pose. Le chinois sera transcodé et changé au format "u****". Comment éviter d'être transcodé ? des personnages ?

Méthode 1 : la version PHP est 5.4 ou supérieure ;

echo json_encode( '中文' );     // "\u4e2d\u6587"
echo json_encode( '中文', JSON_UNESCAPED_UNICODE ); // "中文"
Copier après la connexion

Instructions :

Syntaxe : json_encode ( $value [, $options = 0 ] )

1. $value est la valeur à encoder, et cette fonction n'est valable que pour les données encodées en UTF8

2 options : un masque binaire composé des constantes suivantes :

JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE, JSON_PARTIAL_OUTPUT_ON_ERROR.

3. Le deuxième paramètre n'est généralement pas nécessaire

4. Les données json sont en fait une chaîne, qui peut être imprimée avec var_dump() pour voir le type de données ;

5. Les données JSON sont renvoyées si l'exécution est réussie, sinon FALSE est renvoyé.

Méthode 2 : transcodez d'abord le code urlencode des caractères chinois, en json_encode ; puis décodez urldecode

echo $con = '中文'; // 中文
echo $con = urlencode( $con ); // %E4%B8%AD%E6%96%87"
echo $con = json_encode( $con ); // %E4%B8%AD%E6%96%87"
echo $con = urldecode( $con ); // "中文"
Copier après la connexion

Pour plus de connaissances sur la programmation, veuillez visiter : Introduction ; à la Programmation ! !

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal