Ruby 1.9的代码文件中,如果包含了utf-8字符,那么需要在文件的第一行加上# encoding: utf-8。我找到这样一个脚本来自动增加。
[url]http://stackoverflow.com/questions/3999415/why-are-all-strings-ascii-8bit-after-i-upgraded-to-rails-3/4158423#4158423[/url]
在lib/tasks目录下创建个文件lib/tasks/utf8encode.rake,内容如下:
运行rake utf8_encode_headers,好了,现在脚本全都帮你加完了
[url]http://stackoverflow.com/questions/3999415/why-are-all-strings-ascii-8bit-after-i-upgraded-to-rails-3/4158423#4158423[/url]
在lib/tasks目录下创建个文件lib/tasks/utf8encode.rake,内容如下:
# encoding: utf-8
desc "Manage the encoding header of Ruby files"
task :utf8_encode_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] == "# encoding: utf-8\n" ||
content[0..22] == "# -*- encoding: utf-8 -*-"
["\n\n", "\n"].each do |file_end|
content = content.gsub(/(# coding: utf-8#{file_end})|(# encoding: utf-8#{file_end})|(# -*- coding: utf-8 -*-#{file_end})|(# -*- encoding: utf-8 -*-#{file_end})/i, "")
end
new_file = File.open(file, "w")
new_file.write("# encoding: utf-8\n"+content)
new_file.close
end
end
运行rake utf8_encode_headers,好了,现在脚本全都帮你加完了