Verstümmelte Zeichen erscheinen, wenn JSON-Daten in PHP in ein Array konvertiert werden

PHPz
Freigeben: 2023-05-11 09:20:36
Original
549 Leute haben es durchsucht

In der PHP-Entwicklung ist die JSON-Datenverarbeitung zu einer häufigen Aufgabe geworden. Insbesondere bei der Interaktion mit dem Frontend oder der Verbindung mit APIs von Drittanbietern ist JSON häufig das am häufigsten verwendete Datenformat.

Bei der Verwendung von PHP zur Verarbeitung von JSON-Daten werden Sie manchmal auf verstümmelte Zeichen stoßen, wenn die JSON-Daten in ein Array konvertiert werden. In diesem Artikel werden die Gründe dafür und Möglichkeiten zur Behebung untersucht.

1. Warum erscheinen verstümmelte Codes?

In PHP ist die Konvertierung von JSON-Daten in ein Array über die Funktion json_decode() eine gängige Operationsmethode. Wenn die JSON-Daten jedoch chinesische Zeichen enthalten, sind die chinesischen Zeichen im konvertierten Array möglicherweise verstümmelt.

Das liegt daran, dass der von PHP standardmäßig verwendete Zeichensatz ISO-8859-1 statt UTF-8 ist, sodass chinesische Zeichen im UTF-8-Codierungsformat nicht richtig erkannt werden können, was zu verstümmelten Zeichen führt.

2. Lösung

1. Verwenden Sie den zweiten Parameter der Funktion json_decode()

Zusätzlich zur Konvertierung von JSON-Daten in ein Array kann die Funktion json_decode() auch einen zweiten Parameter hinzufügen, um ein JSON-String-Kodierungsformat anzugeben.

Wenn die JSON-Daten beispielsweise in UTF-8 codiert sind, können sie durch den folgenden Code angegeben werden:

$result = json_decode($json, true, JSON_UNESCAPED_UNICODE);
Nach dem Login kopieren

Unter anderem weist der dritte Parameter JSON_UNESCAPED_UNICODE PHP an, chinesische Zeichen nicht zu maskieren, sondern das ursprüngliche UTF direkt beizubehalten -8-Kodierung.

2. Konvertieren Sie den ISO-8859-1-Zeichensatz in den UTF-8-Zeichensatz.

Eine andere Lösung besteht darin, den ISO-8859-1-Zeichensatz in den UTF-8-Zeichensatz zu konvertieren. Dies kann durch die Verwendung der Funktion iconv() oder der Funktion mb_convert_encoding() erreicht werden.

Zum Beispiel können Sie mit der Funktion iconv() so schreiben:

$result = json_decode(iconv("ISO-8859-1", "UTF-8//IGNORE", $json), true);
Nach dem Login kopieren

Unter anderem weist der zweite Parameter „UTF-8//IGNORE“ die Funktion iconv() an, ISO-8859-1-kodierte Zeichen in umzuwandeln UTF-8-Kodierung.

3. Fügen Sie die Kodierungsformatanweisung direkt zur PHP-Datei hinzu.

Fügen Sie den folgenden Code am Anfang der PHP-Datei hinzu:

header("Content-type:text/html;charset=utf-8");
Nach dem Login kopieren

Auf diese Weise können Sie den Zeichensatz der PHP-Datei als UTF-8-Kodierung angeben, um dies sicherzustellen dass chinesische Schriftzeichen richtig erkannt werden können.

Zusammenfassung:

Wenn Sie bei der Verarbeitung von JSON-Daten in PHP auf verstümmelte Probleme stoßen, geraten Sie nicht in Panik. Sie können den zweiten Parameter der Funktion json_decode() hinzufügen oder die ISO-8859-1-Kodierung in UTF-8-Kodierung konvertieren , oder Fügen Sie am Anfang der PHP-Datei eine Zeichensatzdeklaration hinzu, um das Problem zu lösen.

Das obige ist der detaillierte Inhalt vonVerstümmelte Zeichen erscheinen, wenn JSON-Daten in PHP in ein Array konvertiert werden. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!