解决操作yaml文件时出现类似「"\xE5" from ASCII-8BIT to UTF-8」的问题
前略,某系统的数据是这样产生的
1)在rake中通过nokogiri来收集数据,然后把数据写入到一个yaml文件中
2)读取该yaml文件把数据写入数据库
结果在第一步的时候就遇到了非常悲催的「”\xE5” from ASCII-8BIT to UTF-8」,fml
解决方法:
写入文件的时候指定外部编码跟内部编码
1 | File.open("file.yml", 'w:ASCII-8BIT:utf-8') do |file| |
or
1 | File.open("file.yml", 'w') do |file| |
Done
扩展:
1)按照请教ruby怎么往MySQL里插中文里面的13楼所介绍的方法也不好用,不过5楼倒是给出了原因
2)在双飞燕这本书的p358-p389有该详细介绍