Problem mit der chinesischen Kodierung json_encode in PHP

怪我咯
Freigeben: 2023-03-13 19:44:01
Original
1896 Leute haben es durchsucht

In der tatsächlichen Anwendung werden bei direkter Verwendung der json_encode() Funktion chinesische Schriftzeichen in der Form „u***“ kodiert. , seit php5. Verwenden Sie die folgende Methode, um das Problem der Codierung chinesischer Zeichen zu lösen.

Zum Beispiel: „Xu“ wird zu „u80e5“. ' nach der json_encode-Verarbeitung und dem endgültigen json Der chinesische Teil wird durch Unicode-Codierung ersetzt. Was wir lösen müssen, ist, das -Objekt in JSON zu konvertieren und sicherzustellen, dass das Chinesisch im Objekt immer noch als normales Chinesisch in JSON erscheint. Nun scheint es, dass nur die Verwendung von json_encode das Ziel nicht erreichen kann.
Meine Lösung: Zuerst das chinesische Feld in der Klasse url-kodieren (urlencode), dann das Objekt json-kodieren (jsonencode) und schließlich den JSON, den endgültigen JSON, und das Chinesisch url-dekodieren (urldecode). innen ist es immer noch dasselbe. Es ist das chinesische!
Der Testcode lautet wie folgt:

<?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;); 
?>
Nach dem Login kopieren

Ergebnis der Programmausgabe:

{"item1":1,"item2":"\u4e2d\u6587"} 
{"item1":1,"item2":"中文"} 
{"item1":1,"item2":"\u4e2d\u6587"} 
"\u80e5"
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonProblem mit der chinesischen Kodierung json_encode in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage