поэтому я сохранил на диск некоторые объекты, используя следующий код (это Ruby 1.9.2 в Windows BTW):
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"
1-й продукт работает нормально, но 2-й дает исключение.