在ruby

时间:2015-08-21 15:10:53

标签: ruby-on-rails ruby utf-8

我有一个函数将文件名写入ruby中的文件。 但是我收到了这个错误:

Encoding::UndefinedConversionError: "\x96" from ASCII-8BIT to UTF-8

克服了这个问题:

file = File.open("names", "w")
file.puts(filename.force_encoding("utf-8"))

这样做解决了这个问题,但是当我再次阅读文件并尝试打开names存储在名称文件中的文件时。 我收到错误CANNNOT STAT: NO SUCH FILE OR FOLDER EXISTS

欢迎任何建议.. !!

1 个答案:

答案 0 :(得分:2)

好吧,我会尽力建议。

听起来你从运行Windows的工作站收到了这个文件。看起来这个文件的原始名称是

Volunteer Log – in Page.docx

也就是说,是使用Encoding::CP1252存储的。好的,你要以正确的方式处理CP1252

file = File.open 'names', 'w'
file.puts filename.force_encoding(Encoding::CP1252).encode(Encoding::UTF_8)

希望它有所帮助。