LINUX.ORG.RU

Конвертация HTML символов в UTF-8

 


1

1

Здравствуйте. Есть текстовый файл с именами в кодировке UTF-8. Но присутствуют символы начинающиеся с амперсанда:

cat names

Nastásia
Böttner
Αфанасьев

Нужно HTML символы перевести в UTF-8

Требуемый результат

Nastásia
Böttner
Αфанасьев

Если делать

recode html..utf-8
, то возникают проблемы с кирилицей.

cat names | recode html..utf-8
Nastásia
Böttner
ΑÑ�анаÑ�Ñ�ев

Ответ на: комментарий от napulsnik

recode считает, что если html, то кодировка там Latin-1. Не знаю, как ему сказать, что там utf-8. Может вас устроит такой хак:

recode utf-8..html | sed 's/&/\&/g' | recode html..utf-8

mky ★★★★★ ()
$ cat 1.txt | perl -MHTML5::DOM -pe '$_ = HTML5::DOM->new({encoding => "UTF-8"})->parse($_)->root->textContent'
Nastásia
Böttner
Αфанасьев

Алсо ещё и теги обработает, если есть

anonymous ()