У меня есть файл данных (например, планшета Apple), который имеет Unicodecodepoints как \U00e8
и \U2019
. Мне нужно превратить их в действительные шестнадцатеричные HTML entities с использованием PHP.Как преобразовать кодовые страницы Unicode в шестнадцатеричные объекты HTML?
Что я делаю сейчас является длинная строка:
$fileContents = str_replace("\U00e8", "è", $fileContents);
$fileContents = str_replace("\U2019", "’", $fileContents);
Который явно ужасно. Я мог бы использовать регулярное выражение для преобразования \U
и всех завершающих 0s
в &#x
, а затем придерживаться конечного ;
, но это также кажется тяжелым.
Есть ли простой и простой способ взять строку и заменить все кодовые страницы юникода на объекты HTML?
Регулярные выражения PCRE довольно быстры и безопасны; Я бы использовал их. (Другие официальные решения, вероятно, тоже будут использовать регулярное выражение. Или таблица поиска, которая у вас есть сейчас.) – MvanGeest
Согласно [этой странице] (http://code.google.com/p/networkpx/wiki/PlistSpec), эти escape-последовательности представляют собой кодовые единицы UTF-16, а не кодовые коды Unicode. Это означает, что вам может понадобиться объединить два последовательных блока кода (если они образуют суррогатную пару), чтобы сформировать объект HTML. – Artefacto