Я пытаюсь декодировать строку, которая содержит экранированный Unicode:
\var_dump(\json_decode('"some text \u26bd"'));
Пример выше работает, как и ожидалось, вывод: string(13) "some text ⚽"
.
Когда Unicode содержит 4 байта, это невозможно декодировать такую строку, используя json_decode()
:
\var_dump(\json_decode('"some text \u1F469"'));
\var_dump(\json_decode('"some text \u1F469"', false, 1, JSON_UNESCAPED_UNICODE));
приводит к
string(14) "some text 9"
string(14) "some text 9"
Возможно ли как-то декодировать такой юникод?
$ php -v
PHP 7.2.24-0ubuntu0.18.04.1
Ссылка для воспроизведения