Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kodiere ich Sonderzeichen in JSON mit der json_encode()-Funktion von PHP richtig?

Wie kodiere ich Sonderzeichen in JSON mit der json_encode()-Funktion von PHP richtig?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-18 17:10:03159Durchsuche

How to Correctly Encode Special Characters in JSON with PHP's json_encode() Function?

JSON-Kodierung und Sonderzeichen

Beim Kodieren von Arrays mit der Funktion json_encode() kann es vorkommen, dass Elemente, die Sonderzeichen enthalten, konvertiert werden leere Zeichenfolgen. Dieses Verhalten macht sich besonders bei Zeichen wie Urheberrechts- oder Markensymbolen bemerkbar.

Um dieses Problem zu beheben, stellen Sie sicher, dass alle Zeichenfolgendaten UTF-8-codiert sind, bevor Sie sie als JSON codieren. Dies kann durch die Verwendung von array_map() in Verbindung mit der Funktion utf8_encode() erreicht werden:

<code class="php">$arr = array_map('utf8_encode', $arr);
$json = json_encode($arr);</code>

Wie im PHP-Handbuch erwähnt, erfordert json_encode(), dass alle String-Daten UTF-8-codiert sind. Indem wir die Array-Elemente vor der JSON-Kodierung in UTF-8 kodieren, stellen wir sicher, dass Sonderzeichen in der JSON-Ausgabe korrekt dargestellt werden.

Der Übersichtlichkeit halber vergleichen wir die Ergebnisse der Kodierung eines Arrays mit und ohne UTF-8 Kodierung:

Ohne UTF-8-Kodierung:

<code class="php">$arr = ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"];
$json = json_encode($arr); // {"funds":null}</code>

Mit UTF-8-Kodierung:

<code class="php">$arr = array_map('utf8_encode', ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"]);
$json = json_encode($arr); // {"funds":"ComStage STOXX\u00c2\u00aeEurope 600 Techn NR ETF"}</code>

Durch die Anwendung der UTF-8-Kodierung werden die Sonderzeichen in der JSON-Ausgabe korrekt dargestellt. Denken Sie daran, utf8_encode() konsequent für eine ordnungsgemäße Codierung zu verwenden.

Das obige ist der detaillierte Inhalt vonWie kodiere ich Sonderzeichen in JSON mit der json_encode()-Funktion von PHP richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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