2011-08-05 6 views
1

私はスペイン語の文字列:ñ, á, é, í, ó, ú, etcを持つRailsプロジェクトに取り組んでいます。Railsグローバルエンコーディング設定?

アプリケーションを実行するときにエラーを避けるために、これらの文字を含むすべてのファイルの先頭に「コーディング」コメント(# coding: utf-8)を使用する必要があります。

各ファイルにこのコメントを入力する代わりに、このオプションをグローバルに設定する方法はありますか?私はそれがイニシャライザまたは環境ファイルに入るはずだと思います。

答えて

3

このトピックについては、James Edward Grey氏の素晴らしいblog postがあります。

ソースファイルはutf-8でエンコードされていますが、使用している宝石の著者がShift JISなどを使用している可能性があります。これはビッグバンで終わります。

中間体溶液は、マジックコメントの有無をチェックするためにrakeタスクを使用して、それを追加する場合は存在しない(臆面もなくthis blog postから盗まれたコード)のようになります。

desc "Manage the encoding header of Ruby files" 
task :check_encoding_headers => :environment do 
    files = Array.new 
    ["*.rb", "*.rake"].each do |extension| 
    files.concat(Dir[ File.join(Dir.getwd.split(/\\/), "**", extension) ]) 
    end 

    files.each do |file| 
    content = File.read(file) 
    next if content[0..16] == "# coding: utf-8\n\n" 

    ["\n\n", "\n"].each do |file_end| 
     content = content.gsub(/(# encoding: utf-8#{file_end})|(# coding: utf-8#{file_end})|(# -*- coding: utf-8 -*-#{file_end})/i, "") 
    end 

    new_file = File.open(file, "w") 
    new_file.write("# coding: utf-8\n\n"+content) 
    new_file.close 
    end 
end 
+0

私は答えとしてこれをマークします私はブログ記事で説明されている問題については考えていません。しかし、少なくともあなた自身のコントローラのためのコーディングを自動的に設定することができればうれしいです。 – bruno077

関連する問題