Gibt es in PHP eine Funktion, die Unicode-Escape-Sequenzen wie " \u00ed
" bis " í
" und alle anderen ähnlichen Vorkommen dekodieren kann ?
Ich habe hier eine ähnliche Frage gefunden, aber sie scheint nicht zu funktionieren.
Versuche dies:
$str = preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/', function ($match) {
return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
}, $str);
Falls es sich um einen UTF-16-basierten C / C ++ / Java / Json-Stil handelt:
$str = preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/', function ($match) {
return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UTF-16BE');
}, $str);
\u
von vier hexadezimalen Ziffern.quelle
json_decode('"' . $text . '"')
json_decode('{"t":"\uD83D\uDE0A"}')
ist 😊$text
doppelte Anführungszeichen enthalten können. Eine überarbeitete Version wäre also :json_decode('"'.str_replace('"', '\\"', $text).'"')
. Vielen Dank für Ihre Hilfe :-)PHP 7+
Ab PHP 7 können Sie dazu die Unicode-Codepoint-Escape-Syntax verwenden.
echo "\u{00ed}";
Ausgängeí
.quelle
quelle
😍
Dies ist ein Vorschlaghammer-Ansatz zum Ersetzen von rohem UNICODE durch HTML. Ich habe keinen anderen Ort gesehen, an dem ich diese Lösung finden könnte, aber ich gehe davon aus, dass andere dieses Problem hatten.
Wenden Sie diese str_replace-Funktion auf RAW JSON an , bevor Sie etwas anderes tun.
Dies dauert nicht so lange, wie Sie denken, und ersetzt JEDEN Unicode durch HTML.
Dies kann natürlich reduziert werden, wenn Sie die Unicode-Typen kennen, die im JSON zurückgegeben werden.
Zum Beispiel bekam mein Code viele Pfeile und Dingbat-Unicode. Diese liegen zwischen 8448 und 11263. Mein Produktionscode sieht also so aus:
Sie können die Blöcke von Unicode nach Typ hier nachschlagen: http://unicode-table.com/de/ Wenn Sie wissen, dass Sie Arabisch oder Telegu oder was auch immer übersetzen, können Sie nur diese Codes ersetzen, nicht alle 65.000.
Sie können denselben Vorschlaghammer auf die einfache Codierung anwenden:
quelle
Es gibt auch eine Lösung:
http://www.welefen.com/php-unicode-to-utf8.html
quelle
Fix json Werte, es ist \ vor u {xxx} zu allen + "" hinzufügen
quelle