Uma demonstração de como a conversão funciona: No Windows, que usa o
charset WINDOWS-1252, por default, criei o arquivo texto
testew1252.txt com uma linha escrita: "Está cheio de acentuação."... Dai, no Linux, vamos dar uma olhada no arquivo:
$ hd testew1252.txt
00000000 45 73 74 e1 20 63 68 65 69 6f 20 64 65 20 61 63 |Est. cheio de ac|
00000010 65 6e 74 75 61 e7 e3 6f 2e 0a |entua..o..|
Como pode observar, os bytes da posição 3, 21 e 22 são E1, E7 e E3, correspondedo ao 'á', 'ç' e 'ã', de acordo com a tabela em
http://en.wikipedia.org/wiki/Windows-1252.
Depois de converter com o
iconv:
$ iconv -f WINDOWS-1252 -t UTF-8 testw1252.txt -o testUTF8.txt
$ hd testUTF8.txt
00000000 45 73 74 c3 a1 20 63 68 65 69 6f 20 64 65 20 61 |Est.. cheio de a|
00000010 63 65 6e 74 75 61 c3 a7 c3 a3 6f 2e 0a |centua....o..|
Como pode observar o 'á' corresponde ao código C3 A1, o 'ç' corresponde a C3 A7 e o 'ã' ao C3 A3. O arquivo
testeUTF8.txt tem agora exatamente 3 bytes adicionais, em relação ao original. E. se você abrir o arquivo com um editor que preste ou usar o comando
cat, verá:
$ cat testUTF8.txt
Está cheio de acentuação.
Com todos os acentos convertidos!