Ich habe ein PHP-Skript, das sich mit einer Vielzahl von Sprachen befasst. Leider wird json_encode
jede Unicode-Ausgabe bei jedem Versuch in hexadezimale Entitäten konvertiert. Ist das das erwartete Verhalten? Gibt es eine Möglichkeit, die Ausgabe in UTF-8-Zeichen zu konvertieren?
Hier ist ein Beispiel für das, was ich sehe:
EINGANG
echo $text;
AUSGABE
База данни грешка.
EINGANG
json_encode($text);
AUSGABE
"\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u0438 \u0433\u0440\u0435\u0448\u043a\u0430."
JSON_UNESCAPED_UNICODE ist in PHP Version 5.4 oder höher verfügbar.
Der folgende Code gilt für Version 5.3.
AKTUALISIERT
html_entity_decode
ist etwas effizienter alspack
+mb_convert_encoding
.(*SKIP)(*FAIL)
Überspringt Backslashes selbst und bestimmte Zeichen durchJSON_HEX_*
Flags.quelle
\\
. Neuere Versionen haben eine\\
höhere Priorität als\u
.Sie möchten Zeichensatz und nicht entkoppelten Unicode einstellen
quelle
Eine Lösung besteht darin, Daten zuerst zu codieren und dann in derselben Datei zu decodieren:
quelle
Hier ist meine kombinierte Lösung für verschiedene PHP-Versionen.
In meiner Firma arbeiten wir mit verschiedenen Servern mit verschiedenen PHP-Versionen, daher musste ich eine Lösung finden, die für alle funktioniert.
Credits sollten an Marco Gasi & abu gehen . Die Lösung für PHP> = 5.4 finden Sie in den Dokumenten zu json_encode.
quelle
Die raw_json_encode () Funktion oben hätte löst mir nicht das Problem (aus irgendeinem Grunde, hob die Callback - Funktion einen Fehler auf meinem PHP 5.2.5 - Server).
Aber diese andere Lösung hat tatsächlich funktioniert.
https://www.experts-exchange.com/questions/28628085/json-encode-fails-with-special-characters.html
Credits sollten an Marco Gasi gehen . Ich rufe einfach seine Funktion auf, anstatt json_encode () aufzurufen:
quelle
quelle
Da hast du gefragt:
Eine andere Lösung ist die Verwendung von utf8_encode .
Dadurch wird Ihre Zeichenfolge in codiert
UTF-8
.z.B
quelle
Das
json_encode()
funktioniert nur mit UTF-8-codierten Daten.Vielleicht können Sie hier eine Antwort bekommen, um sie zu konvertieren: kyrillische-Zeichen-in-phps-json-codieren
quelle