Как я могу преобразовать строку из \uD83D\uDE00 в полную \U0001f603? json_encode() преобразует только в первый вариант ...
\uD83D\uDE00
\U0001f603
json_encode()
$str = '?'; $encode = json_encode($str); var_dump($encode); // string(14) ""\ud83d\ude03""
Если у вас установлено расширение Intl, это достаточно просто сделать с помощью одного из его встроенных транслитераторов :
Intl
<?php $str = "?"; echo transliterator_create("Any-Hex/C")->transliterate($str);
Вывод:
\U0001F603