写的一个 task,目的是把图片从服务器上迁移到七牛云上,然后读取数据时,把数据临时的保存在 yml 文件中,出现错误,如果是英文的话就没问题。
错误信息
Encoding::UndefinedConversionError: "\xE9" from ASCII-8BIT to UTF-8
from /home/xiaolong/.rvm/rubies/ruby-1.9.3-
p392/lib/ruby/1.9.1/psych/visitors/emitter.rb:27:in write
自己到网上搜了下 http://runupwind.iteye.com/blog/1109238#comments
在 gemfile 中 增加 ya2yaml 我试了下,还是出错。
http://www.cnblogs.com/kting/archive/2011/09/15/2177530.html 修改 mysql2_adapter.rb 也没有用
代码如下
读取数据保存在 yml 文件中的相关代码
namespace :utils do
desc "Deploy all picture in local to QiuNiuCloud"
task :deploy_picture_to_qiniu => :environment do
url = Rails.root.to_s+"/config/photos.yml"
@tech = Technician.all
self.save(@tech,url)
end
end
def self.save(rules)
result = true
begin
File.open("#{url}", 'w') { |f|
YAML.dump(rules, f)
}
rescue => err
logger = Logger.new(Rails.root.to_s + '/log/err.log')
logger.error err
logger.close
result = false
end
result
end
请问有遇到过类似问题的朋友没?