Это, кажется, работает нормально:
echo "&#" . hexdec(str_replace("U","","U4e9c")) . ";";
Обновление
Вот где приходит mb_convert_encoding:
$k = "&#" . hexdec(preg_replace("/[Uu]/","","U4e9c")) . ";";
$k=mb_convert_encoding($k ,"UTF-8","HTML-ENTITIES");
Это позволяетОБНОВИТЬ мою базу данных mysql с $ k (тогда как без mb_convert_encoding она работает только для отображения на странице HTML).