Warum „spezielle“ Unicode-Zeichen mit u.... codiert erscheinen. Sequenzen in JSON
Beim Codieren von „speziellen“ Unicode-Zeichen mit PHPs json_encode-Funktion erscheinen sie oft als unbekannte String-Literale mit dem Präfix „u“. Dieses Verhalten ist dem Zeichenkodierungsmechanismus von JSON inhärent und weist nicht auf Kodierungsfehler hin.
JSON ermöglicht die Darstellung von Zeichen als u.... Escape-Sequenzen, wobei .... den Unicode-Codepunkt des Zeichens bezeichnet . Dies entspricht der Bildung von Zeichenfolgenliteralen in ECMAScript (JavaScript).
Zum Beispiel kann das Zeichen „馬“ in JSON entweder als „馬“ oder „u99ac“ dargestellt werden. Beide Literale repräsentieren dasselbe Zeichen und sind gleichermaßen gültig. Beim Parsen durch einen kompatiblen JSON-Parser liefern beide die gleiche Zeichenfolge.
Standardmäßig bevorzugt PHPs json_encode u... Escape-Sequenzen für Nicht-ASCII-Zeichen. Sie können diese Einstellung jedoch überschreiben, indem Sie das JSON_UNESCAPED_UNICODE-Flag in PHP 5.4 oder höher angeben. Dies führt zu einer JSON-Ausgabe mit Literalzeichen anstelle von Escape-Sequenzen:
json_encode(['foo' => '馬'], JSON_UNESCAPED_UNICODE); // Output: {"foo":"馬"}
Es ist wichtig zu beachten, dass die Angabe von JSON_UNESCAPED_UNICODE eine persönliche Präferenz und keine Voraussetzung für den Transport von Unicode-Zeichen in JSON ist. Sowohl Escape-Sequenzen als auch Literalzeichen sind in der JSON-Darstellung gleichermaßen gültig.
Das obige ist der detaillierte Inhalt vonWarum werden einige Unicode-Zeichen in JSON als „\u....'-Sequenzen angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!