Unicode  XML
Índice dos Fóruns » Ruby & Ruby on Rails
Autor Mensagem
Figuera
Thread.start()

Membro desde: 18/10/2007 17:10:08
Mensagens: 34
Offline

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:



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:



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?
Rafael Nunes
Moderador
[Avatar]

Membro desde: 09/10/2003 13:41:06
Mensagens: 2890
Localização: sao bernardo do campo
Offline

Antes na verdade você precisa entender bem o que é 'encoding' e pq ISO-8859-1 ou UTF-8.

Esse texto me mostrou muita coisa sobre isso:
http://www.joelonsoftware.com/articles/Unicode.html

------------------------------------------------------------------
"Think different? I'd be happy if most people would just think..."

http://www.yaw.com.br
http://twitter.com/rafanunes
http://twitter.com/youandwe
[Email]
Figuera
Thread.start()

Membro desde: 18/10/2007 17:10:08
Mensagens: 34
Offline


Bom primeiro obrigado, estava mesmo procurando informações sobre Unicode.

Tem algumas duvidas quanto ao artigo, e talvez você possa me responder:

Unicode é um "tabelão" de 16 bits? Assim casa caractere corresponde a um numero na tabela? Se é assim porque ele diz que:

"There is no real limit on the number of letters that Unicode can define and in fact they have gone beyond 65,536 so not every unicode letter can really be squeezed into two bytes, but that was a myth anyway."

Não tem limites? Como ele vai ter mais que 65536? Como assim uma letra pode ser espremida em 2 bytes?

E a outra duvida é a respeito do encoding, a diferença entre o UTF-8 e o Unicode puro, é que o UTF-8 gasta menos memoria?
urubatan
Moderador
[Avatar]

Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline

resposta rápida, tu só tem que fazer o Ruby saber qual o encoding do arquivo, pelas mensagens imagino que tu esteja utilizando Ruby 1.9
Coloca no inicio do arquivo
# encoding: UTF-8
E salva o arquivo em UTF-8

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
 
Índice dos Fóruns » Ruby & Ruby on Rails
Ir para:   
Powered by JForum 2.1.8 © JForum Team