Go to English Blog

Migrando de ISO-8859-1 para UTF-8 no Rails

Leia em menos de um minuto

O Spesa foi criado usando a codificação ISO-8859-1, principalmente pelo fato de achar que o Ruby fazia UTF-8 "nas coxas". Como houve uma preocupação muito maior com o lançamento do Rails 1.2, através do mixin "Chars" — embora seja feito no framework e não na linguagem — e estou migrando meu projeto para esta nova versão, resolvi mudar a codificação de ISO para UTF-8.

Migrar o banco de dados foi bem simples, já que o PHPMyAdmin, quando exporta as informações, automaticamente converte para UTF-8. A única coisa que é preciso fazer, é importar os dados também pelo PHPMyAdmin (não consegui fazer direto pelo shell do MySQL).

Outra coisa que você tem que fazer é converter todos os arquivos — classes, templates e controllers — para UTF-8. Mas cuidado: não salve com o BOM. Se você salvar, o Ruby acusará erros de compilação.

Não se esqueça de atualizar seu código caso use funções que manuseiam strings. Veja um exemplo abaixo:

#retornará 15
puts 'João Silvério'.length

#retornará 13
puts 'João Silvério'.chars.length

Daqui para frente, vamos fazer nossos aplicativos com UTF-8. Capisce?