Как расшифровать экранированный уникод с 4-мя байтами? - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь декодировать строку, которая содержит экранированный 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

Ссылка для воспроизведения

...