Я запускаю команду оболочки 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 какие-либо встроенные средства для этой цели?
Поскольку это одиночная строка с экранированием байта, вы можете преобразовать их, используя регулярное выражение:
echo preg_replace("#(\\\x[0-9A-F]{2})#e", "chr(hexdec('\\1'))", $var);