Unicode é algo que me deixa confuso.
Afinal sobre quais circunstâncias UTF-8 não suporta acentos? Isso não é claro para mim.
Por exemplo, em meu Ubuntu ao utilizar o gnome-terminal com UTF-8 não é raro eu me deparar com algum caractere “bugado”, ao utilizar o editar de texto Vim no próprio terminal não posso digitar um caractere com acento que ele aparece seguido de um espaço (Pelo menos aparece, mas o comportamento estranho é por de mais incomodo).
Enquanto posto, fiz um teste, escrevendo uma linha de programa Ruby no vim, escrevi:
print "Teste: á ã â"
Após uma longa batalha com o Vim que não conseguia se comportar bem na presença de acentos, consegui salvar o arquivo como teste.rb e rodar no terminal, que logo me retornou:
teste.rb:2: invalid multibyte char (UTF-8)
teste.rb:2: invalid multibyte char (UTF-8)
Porque? O que está errado nessa aventura?
Se eu mudo o encoding do terminal para ISO-8859-1, o Vim se comporta direitinho, se eu mudo o encoding do arquivo ruby para ISO-8859-1 o terminal retorna:
Note que aqui meu terminal está em UTF-8, como antes quando dava o erro, seu eu mudar o terminal também para ISO-8859-1, temos:
Essa me supreendeu, esperava uma resposta bem comportada dessa vez, porque os “as” minusculos com acentos variáveis se tornaram Ãs? Testei e percebi que o proprio arquivo teste.rb tinha sido modificado de alguma forma, modifiquei para a velha string “á ã â” e dessa vez deu certo:
Com tantos problema eu devo ainda insistir em UTF-8? Não podemos culpa minha gana de mudar tudo o possível para ISO-8859-1, porém eu ando lendo e todo mundo me recomenda a usar UTF-8, queria então entender os problemas desse encoding e como lidar com eles, alguém pode me ajudar?