Fernando Luizão

Desenvolvimento de software e nerdices em geral

Posts Tagged ‘encoding

Dica: adicionando comentários de codificação num projeto Rails

with 5 comments

O Ruby 1.9 agora leva em consideração o encoding das strings nos arquivos, então caso algum arquivo ruby tenha algum caracter não ASCII (caracteres acentuados por exemplo), será exibido o erro:

invalid multibyte char (US-ASCII)

Para que o erro não ocorra, basta adicionar o comentário abaixo na primeira linha do arquivo *.rb:

# encoding: UTF-8

Ao migrar um projeto Rails para Ruby 1.9, esse erro acontecia em vários arquivos, então nada melhor que deixar o computador resolver o problema por você :). O comando abaixo vai colocar esse comentário em todos os controllers, helpers e models do seu projeto Rails:

cd seu_projeto
find app/{controllers,models,helpers} -type f -name \*.rb | xargs sed -i '1i # encoding: UTF-8'

Para quem usa windows, pode usar o seguinte script Ruby para fazer o mesmo:

# utf_comment.rb
Dir["app/{controllers,models,helpers}/**/*.rb"].each do |filename|
  content = File.read(filename).sub(/^/, "# encoding: UTF-8\n")
  File.open(filename, "r+") { |f| f.write(content) }
end

Execute com

cd seu_projeto
ruby utf_comment.rb

Para mais informações sobre codificação de strings, aqui tem vários artigos abordando as mudanças. Recomendo a leitura!

Written by fernandoluizao

August 28, 2009 at 11:55 pm

Posted in Rails, Ruby

Tagged with , , , ,