Как минимум ваше регулярное выражение ищет прописные буквы U
, в то время как все ваши escape-последовательности используют строчные буквы.
Но ваш сценарий преобразования переходит от символов Юникода, экранированных javascript, к сущностям HTMLвернуться к строке PHP.Это может быть более разумным решением (для этой строки):
$unicode = '\u0411. \u0426\u044d\u0446\u044d\u0433\u0441\u04af\u0440\u044d\u043d';
echo json_decode('"' . $unicode . '"');
Будьте осторожны, поскольку это может привести к сбою, если во входной строке содержатся символы новой строки или кавычки.