Wie kodiere ich Nicht-ASCII-Zeichen in JSON mit UTF-8 unter Verwendung von „json_encode' von PHP?

Linda Hamilton
Freigeben: 2024-10-27 00:15:02
Original
148 Leute haben es durchsucht

How to Encode Non-ASCII Characters in JSON with UTF-8 Using PHP's `json_encode`?

So geben Sie PHP json_encode mit UTF-8-Kodierung anstelle von Unicode zurück

Bei Verwendung der json_encode-Funktion von PHP standardmäßig Nicht-ASCII-Zeichen sind im Unicode-Format kodiert. Dies führt zu einer JSON-Antwort mit Escape-Sequenzen wie „u00e1“ anstelle von UTF-8-codierten Zeichen wie „á“.

Nehmen Sie dieses Beispiel:

<code class="php">$arr = array('a' => 'á');
echo json_encode($arr);</code>
Nach dem Login kopieren

Die Ausgabe wäre:

<code class="json">{"a":"\u00e1"}</code>
Nach dem Login kopieren

Um dieses Problem zu beheben und die JSON-Antwort mit UTF-8-codierten Zeichen zurückzugeben, können Sie die folgenden Ansätze verwenden:

PHP 5.4:

Ab PHP 5.4 bietet json_encode die Option JSON_UNESCAPED_UNICODE. Durch Festlegen dieser Option werden Nicht-ASCII-Zeichen einfach UTF-8-codiert, ohne Escape-Sequenzen.

<code class="php">echo json_encode($arr, JSON_UNESCAPED_UNICODE);</code>
Nach dem Login kopieren

Ältere PHP-Versionen:

Für Versionen vor PHP 5.4 können Sie Ihren eigenen JSON-Encoder implementieren, der die Codierung von Nicht-ASCII-Zeichen weglässt. Alternativ können Sie den JSON-Encoder von Pear verwenden und die Zeilen 349 bis 433 aus der Codierungsfunktion entfernen.

Bitte beachten Sie, dass der Unterschied zwischen {"a":u00e1"} und {"a":á"} liegt lediglich daran, wie sie in der JSON-Syntax geschrieben sind. Beide Darstellungen werden von JSON-Dekodierern in denselben Unicode-Wert dekodiert.

Das obige ist der detaillierte Inhalt vonWie kodiere ich Nicht-ASCII-Zeichen in JSON mit UTF-8 unter Verwendung von „json_encode' von PHP?. 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
Neueste Artikel des Autors
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!