前略,该系统的数据是这样产生的 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 有该详细介绍