В моем тексте есть некоторые символы с экранированием HTML, например, вместо '
есть '
. Теперь я хотел бы отменить эти последовательности. Поскольку я не знаю, какие символы экранированы, я не хочу использовать простое сопоставление, например, в c("'"="'", ...)
.Unescape HTML nn; последовательности
Я понимаю, что число после амперсанда - это десятичный номер юникода. Так '
является \u27
с 27 является шестнадцатеричным представлением 39. Таким образом, я думал, что решение, которое включает в себя
sprintf("\u%x", s)
где s
является извлеченным числом между &
и ;
. Однако это приводит к ошибке: «\ u используется без шестнадцатеричных чисел».
Что было бы лучшим подходом к преобразованию HTML-экранированных последовательностей в символы?
Помогает ли [эта ссылка] (https://stat.ethz.ch/pipermail/r-help/2012-August/321478.html)? – jlhoward
Немного, спасибо! –