Heim > Backend-Entwicklung > PHP-Tutorial > Was soll ich tun, wenn beim JSON-Kodieren und -Dekodieren in PHP verstümmelte chinesische Zeichen auftreten?

Was soll ich tun, wenn beim JSON-Kodieren und -Dekodieren in PHP verstümmelte chinesische Zeichen auftreten?

王林
Freigeben: 2024-03-08 11:02:01
Original
587 Leute haben es durchsucht

Was soll ich tun, wenn beim JSON-Kodieren und -Dekodieren in PHP verstümmelte chinesische Zeichen auftreten?

Bei der Verwendung der JSON-Kodierung und -Dekodierung in PHP ist die Begegnung mit verstümmelten chinesischen Zeichen ein häufiges Problem. Dies wird normalerweise durch eine inkonsistente Zeichenkodierung zwischen Server und Client verursacht. Im Folgenden wird die Lösung für die JSON-Kodierung und -Dekodierung verstümmelter chinesischer Zeichen in PHP ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt.

Zunächst sollte klar sein, dass die Funktion json_encode() in PHP standardmäßig Chinesisch in die Unicode-Kodierung umwandelt und die Funktion json_decode() sie beim Parsen automatisch verarbeitet. Wenn jedoch während der Verwendung verstümmelte chinesische Zeichen auftreten, können Sie die folgenden Lösungen ausprobieren.

Lösung 1: Zeichenkodierung festlegen

In PHP können Sie die Funktion header() verwenden, um die Zeichenkodierung in den HTTP-Header-Informationen festzulegen, um sicherzustellen, dass zwischen dem Server und dem Client eine einheitliche Zeichenkodierung verwendet wird. Dadurch kann das Problem verstümmelter chinesischer Zeichen vermieden werden. Das Folgende ist ein einfacher Beispielcode:

header('Content-Type: application/json; charset=utf-8');

$data = array(
    'name' => '张三',
    'age' => 25,
    'city' => '北京'
);

$json = json_encode($data, JSON_UNESCAPED_UNICODE);
echo $json;
Nach dem Login kopieren

Im obigen Beispiel haben wir beim Festlegen des Inhaltstyps auch die Zeichenkodierung als utf-8 angegeben und dann die Funktion json_encode() verwendet, um die Daten, die Chinesisch enthalten, in JSON zu konvertieren Format und verwenden Sie den Parameter JSON_UNESCAPED_UNICODE, um zu vermeiden, dass chinesische Zeichen in die Unicode-Codierung übernommen werden.

Lösung 2: Kodierung manuell konvertieren

Wenn die Konsistenz der Zeichenkodierung zwischen Server und Client nicht gewährleistet werden kann, kann während des Kodierungs- und Dekodierungsprozesses eine manuelle Konvertierung durchgeführt werden. Hier ist ein Beispielcode:

$data = array(
    'name' => '李四',
    'age' => 30,
    'city' => '上海'
);

// 编码时手动转换编码
$json = json_encode($data, JSON_UNESCAPED_UNICODE);
$json = mb_convert_encoding($json, 'UTF-8', 'UTF-8');

// 解码时手动转换编码
$json = mb_convert_encoding($json, 'UTF-8', 'UTF-8');
$data = json_decode($json, true);

var_dump($data);
Nach dem Login kopieren

Im obigen Code verwenden wir die Funktion mb_convert_encoding(), um die Kodierung manuell in UTF-8 zu konvertieren, um die Konsistenz der Kodierung sicherzustellen.

Fazit

Ob durch Festlegen der Zeichenkodierung oder manuelles Konvertieren der Kodierung kann dies dazu beitragen, das Problem der verstümmelten chinesischen Zeichen zu lösen, die bei der JSON-Kodierung und -Dekodierung in PHP auftreten. Natürlich muss die Konsistenz der Zeichenkodierung zwischen Server und Client sichergestellt werden, um verstümmelte chinesische Zeichen zu vermeiden.

Ich hoffe, dass der obige Inhalt Ihnen helfen kann, das Problem der JSON-Kodierung und -Dekodierung verstümmelter chinesischer Zeichen in PHP zu lösen. Wenn Sie Fragen oder andere Probleme haben, hinterlassen Sie bitte eine Nachricht zur Diskussion.

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn beim JSON-Kodieren und -Dekodieren in PHP verstümmelte chinesische Zeichen auftreten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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