所以我保存到磁盘使用下面的代码的某些对象(这是红宝石1.9.2在Windows BTW):LOST :(甩了一些数据,使用Ruby YAML,不能读回
open('1.txt', "wb") { |file|
file.write(YAML::dump(results))
}
现在我试图找回那些数据,但是在UTF-8(ArgumentError)中得到了'无效的字节序列',我尝试了所有我能想到的以不同格式保存数据的想法,但没有运气,例如
open('1.txt', 'rb'){|f| a1 = YAML::load(f.read)}
a1.each do |a|
JSON.generate(a)
end
结果于:
C:/m/ruby-1.9.2-p0-i386-mingw32/lib/ruby/1.9.1/json/common.rb:212:in `match':
invalid byte sequence
in UTF-8 (ArgumentError)
from C:/m/ruby-1.9.2-p0-i386-mingw32/lib/ruby/1.9.1/json/common.rb:212:in `generate'
from C:/m/ruby-1.9.2-p0-i386-mingw32/lib/ruby/1.9.1/json/common.rb:212:in `generate'
from merge3.rb:31:in `block in <main>'
from merge3.rb:29:in `each'
from merge3.rb:29:in `<main>'
我该怎么办?
编辑:从文件:
---
- !ruby/object:Product
name: HSF
- !ruby/object:Product
name: "almer\xA2n"
首届产品工程确定,但第2给出了异常。
您能否在'1.txt'中提供YAML输出的摘录? – ocodo 2010-11-10 22:04:27
添加了问题的摘录。 – 2010-11-10 22:24:31