Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Figuera

Unicode

Recommended Posts

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: á ã â"

 

Imagino até quem não conheça nada de ruby saiba o que esse linha faz, 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:

 

Teste: � �

 

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:

 

Teste: Ã Ã Ã

 

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:

 

Teste: á ã â

 

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Figuera,

 

Geralmente quando o UTF-8 apresenta problema de acentuação é quando a codificação do arquivo (encoding) está diferente da codificação dos caracteres que serão exibidos dentro do arquivo (charset).

 

Nos meus projetos eu utilizo sempre UTF-8 SEM BOM (http://goo.gl/vz7t4) como codificação dos arquivos e o charset UTF-8 para codificação dos caracteres que serão exibidos dentro do arquivo.

 

No link entre parênteses você vai entender o porque do uso do UTF-8 SEM BOM para codificação do arquivo.

 

Dessa forma pode ficar certo que você não terá mais nenhum tipo de problema com acentuação.

 

Até mais!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.