Problème avec l'encodage chinois json_encode en php

怪我咯
Libérer: 2023-03-13 19:44:01
original
1896 Les gens l'ont consulté

Dans l'application réelle, lorsqu'il y a des caractères chinois, lors de l'utilisation directe de json_encode() fonction , les caractères chinois seront codés sous la forme de "u***" , depuis php5. Ce problème a été résolu dans 4 cas. Utilisez la méthode suivante pour résoudre le problème de l'encodage des caractères chinois json_encode("Chinese", JSON_UNESCAPED_UNICODE)

Par exemple : 'Xu' devient 'u80e5. ' après le traitement json_encode, et le json final La partie chinoise est remplacée par l'encodage Unicode. Ce que nous devons résoudre, c'est convertir l' objet en json et nous assurer que le chinois à l'intérieur de l'objet apparaît toujours comme du chinois normal en json. Il semble maintenant que seule l'utilisation de json_encode ne puisse pas atteindre l'objectif.
Ma solution : d'abord encoder en url le champ chinois de la classe (urlencode), puis encoder en json l'objet (jsonencode), et enfin décoder en url (urldecode) le json, qui est le json final, et le chinois l'intérieur est toujours le même. C'est le chinois !
Le code du test est le suivant :

<?php 
class myClass { 
public $item1 = 1; 
public $item2 = &#39;中文&#39;; 
function to_json() { 
//url编码,避免json_encode将中文转为unicode 
$this->item2 = urlencode($this->item2); 
$str_json = json_encode($this); 
//url解码,转完json后将各属性返回,确保对象属性不变 
$this->item2 = urldecode($this->item2); 
return urldecode($str_json); 
} 
} 
$c = new myClass(); 
echo json_encode($c); 
echo &#39;<br/>&#39;; 
echo $c->to_json(); 
echo &#39;<br/>&#39;; 
echo json_encode($c); 
echo &#39;<br/>&#39;; 
echo json_encode(&#39;胥&#39;); 
?>
Copier après la connexion

Résultat de sortie du programme :

{"item1":1,"item2":"\u4e2d\u6587"} 
{"item1":1,"item2":"中文"} 
{"item1":1,"item2":"\u4e2d\u6587"} 
"\u80e5"
Copier après la connexion

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