Heim > Artikel > Backend-Entwicklung > Warum konvertiert „json_encode“ UTF-8 in hexadezimale Entitäten in PHP?
Konvertierung von UTF-8 in hexadezimale Entitäten in PHPs json_encode: Eintauchen in das Verhalten und die Lösungen
In PHP-Anwendungen, die mehrsprachige Daten verarbeiten, ist die Die Funktion json_encode stellt oft eine verwirrende Herausforderung dar. Wenn Unicode-Zeichen angetroffen werden, werden diese automatisch in hexadezimale Einheiten umgewandelt, wodurch die gewünschte Unicode-Ausgabe unterbrochen wird.
Erklärung:
Dieses Verhalten ist auf den Standardcodierungsmechanismus von json_encode zurückzuführen . Es nutzt JSON, das erwartet, dass Unicode-Zeichen als hexadezimale Einheiten dargestellt werden, um die Kompatibilität zwischen verschiedenen Systemen und Browsern sicherzustellen. Allerdings kann diese Konvertierung bei bestimmten Szenarien unerwünscht sein.
Lösung:
Um diesem Verhalten entgegenzuwirken, liegt eine Lösung in einer neu eingeführten Option in PHP 5.4. 0, JSON_UNESCAPED_UNICODE. Diese Option weist json_encode an, Unicode-Zeichen intakt zu lassen, ohne sie in hexadezimale Entitäten umzuwandeln. Durch die Verwendung dieser Option können die erwarteten UTF-8-Zeichen beibehalten werden:
json_encode($text, JSON_UNESCAPED_UNICODE);
Dieser Ansatz ermöglicht die folgende Ein- und Ausgabe:
INPUT echo $text; OUTPUT База данни грешка.
INPUT json_encode($text, JSON_UNESCAPED_UNICODE); OUTPUT База данни грешка.
Mit dieser Technik wird die Komplexitäten der Unicode-Konvertierung in der json_encode-Funktion von PHP können effektiv gelöst werden, wodurch die Beibehaltung der gewünschten Unicode-Ausgabe sichergestellt wird.
Das obige ist der detaillierte Inhalt vonWarum konvertiert „json_encode“ UTF-8 in hexadezimale Entitäten in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!