JSON-Kodierung und Sonderzeichen
Beim Kodieren von Arrays mit der Funktion json_encode() kann es vorkommen, dass Elemente mit Sonderzeichen 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:
$arr = array_map('utf8_encode', $arr);
$json = json_encode($arr);
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.
Vergleichen wir der Übersichtlichkeit halber die Ergebnisse der Kodierung eines Arrays mit und ohne UTF-8 Kodierung:
Ohne UTF-8 Kodierung:
$arr = ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"];
$json = json_encode($arr); // {"funds":null}
Mit UTF-8-Kodierung:
$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"}
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.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3