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. .
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 ); // "中文"
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 ); // "中文"
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!