Heim > Artikel > Backend-Entwicklung > Wie kodiere ich JSON in UTF-8, ohne Unicode-Zeichen in PHP zu maskieren?
So kodieren Sie JSON in UTF-8, ohne Unicode-Zeichen zu maskieren
In PHP konvertiert die Funktion json_encode() Werte in JSON-Zeichenfolgen von Standardmäßig werden Unicode-Zeichen jedoch in ihre Unicode-Codepunktdarstellung maskiert. Dies kann in bestimmten Szenarien unerwünscht sein, in denen die Ausgabe UTF-8-Kodierung anstelle von Unicode-Kodierungen erfordert.
Betrachten Sie das folgende Beispiel:
<code class="php">$arr = ['a' => 'á']; echo json_encode($arr);</code>
Die erwartete Ausgabe ist „a“: „á ", aber das tatsächliche Ergebnis ist {"a":u00e1"}. Dies liegt daran, dass die Funktion json_encode() das Zeichen „á“ in ihre Unicode-Codepunktdarstellung codiert hat, die „u00e1“ ist.
Lösung:
Während dort In PHP-Versionen vor 5.4 gibt es keine integrierte Option zum Deaktivieren der Unicode-Escape-Funktion in json_encode(). Es gibt einige Problemumgehungen, um dies zu erreichen:
<code class="php"><?php header('Content-Type: application/json'); $arr = ['a' => 'á']; echo json_encode($arr, JSON_UNESCAPED_UNICODE); ?></code>
Dadurch wird die gewünschte JSON-Zeichenfolge ausgegeben: „a“: „á“.
Das obige ist der detaillierte Inhalt vonWie kodiere ich JSON in UTF-8, ohne Unicode-Zeichen in PHP zu maskieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!