Meus dados de entrada são os seguintes (conforme gerados pelo hexdump):
000000f0 69 61 6e e2 80 99 73 20 65 79 65 73 20 61 62 72 |ian...s eyes abr|
Quando abro este arquivo html() no Firefox, ele exibe estes caracteres como:
ian’s eyes abr
De acordo com o link https://superuser.com/questions/1237545/characters-in-email-displayed-like-e2-80-99 , "E2 80 99 é a sequência de valores hexadecimais que codificam uma aspa simples direita (') em UTF-8".
Este site concorda: https://www.utf8-chartable.de/unicode-utf8-table.pl?start=8192&number=128
Quando executo este comando iconv no arquivo que contém estes caracteres:
iconv -f UTF-8 -t ISO-8859-15 test_chapter.html > blah.html
Recebo a saída:
iconv: illegal input sequence at position 243
e o conteúdo de "blah.html" é truncado exatamente onde o apóstrofo estaria.
Então, para resumir, a internet diz que essa é uma sequência válida de bytes para UTF-8, mas o iconv discorda.
Alguém pode me ajudar a entender o que está acontecendo? Isso é um bug no iconv?
Como nota lateral, quando uso esse arquivo html com kindlegen para gerar um arquivo AZW, o caractere não é exibido corretamente. Tudo o que a internet pode me dizer é que preciso converter o arquivo para UTF-8, mas, até onde sei, já está!