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!