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 = '中文'; 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 '<br/>'; echo $c->to_json(); echo '<br/>'; echo json_encode($c); echo '<br/>'; echo json_encode('胥'); ?>
Ergebnis der Programmausgabe:
{"item1":1,"item2":"\u4e2d\u6587"} {"item1":1,"item2":"中文"} {"item1":1,"item2":"\u4e2d\u6587"} "\u80e5"
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!