Вот в чем проблема:У меня могут быть строки в кодировке UTF-8, и у меня могут быть строки в формате US-ASCII. Независимо от кодировки, я бы хотел, чтобы YAML.dump(str)фактически выводил объекты String
вместо этих бесполезных объектов !binary
, как показано в примере.
Есть ли флаг или что-то, чего я не вижу, чтобы заставить YAML.dump()поступать правильно?
Пример Ruby 1.9.1
YAML::VERSION # "0.60"
a = "foo" # => "foo"
a.force_encoding("BINARY") # => "foo"
YAML.dump(a) # => "--- foo\n"
Пример Ruby 1.9.3
YAML::VERSION # "1.2.2"
a = "foo" # => "foo"
a.force_encoding("BINARY") # => "foo"
YAML.dump(a) # => "--- !binary |-\n Zm9v\n"
Обновление:Получил мой собственный ответ
YAML::ENGINE.yamler='syck'
YAML.dump(a) # => "--- foo\n"
Итак, похоже на использование старого движка yamler со старым поведением.