Как заменить коды UTF-8 в строке PHP реальными символами?

Я выполняю команду оболочки openssl из PHP и получаю следующую строку как сегмент выходной строки из этого: 'Divisi\xC3\xB3n TeleComunicaciones', Насколько я понимаю, есть испанские символы, замененные их буквальными кодами UTF-8.
Мне нужно заменить коды на их испанские эквиваленты символов. Полученная строка должна выглядеть следующим образом: «División TeleComunicaciones»?

Я перепробовал много функций преобразования строк PHP, но ни одна из них не удалась.
Я также заметил одну вещь. Когда я определяю переменную как

$var = "Divisi\xC3\xB3n TeleComunicaciones" оно отражено правильно («División TeleComunicaciones»)

Но если я возьму значение из вывода команды оболочки openssl, оно всегда печатается как 'Divisi\xC3\xB3n TeleComunicaciones',

Кто-нибудь может посоветовать, пожалуйста, есть ли в PHP какие-либо встроенные средства для этой цели?

0

Решение

Поскольку это одиночная строка с экранированием байтов, вы можете преобразовать их с помощью регулярного выражения:

echo preg_replace("#(\\\x[0-9A-F]{2})#e", "chr(hexdec('\\1'))", $var);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]