Ruby 解决 rake 中操作 yaml 文件时出现类似「"\xE5" from ASCII-8BIT to UTF-8」的问题

ywjno · 2012年04月08日 · 8171 次阅读

前略,该系统的数据是这样产生的 1)通过 nokogiri 来收集数据,然后把数据写入到一个 yaml 文件中 2)读取该 yaml 文件把数据写入数据库

结果在第一步的时候就遇到了非常悲催的「"\xE5" from ASCII-8BIT to UTF-8」,fml

解决方法: 写入文件的时候制定外部编码跟内部编码

File.open("file.yml", 'w:ASCII-8BIT:utf-8') do |file|
  YAML.dump(array, file)
end


or

File.open("file.yml", 'w') do |file|
  file.set_encoding("ASCII-8BIT:utf-8")
  YAML.dump(array, file)
end


done

扩展: 1)按照请教 ruby 怎么往 MySQL 里插中文里面的 13 楼所介绍的方法也不好用,不过 5 楼倒是给出了原因 2)在双飞燕这本书的 p358-p389 有该详细介绍

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号