Dea*_*xel 8 ruby string binary yaml utf-8
这是问题:我可能有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"
Run Code Online (Sandbox Code Playgroud)
Ruby 1.9.3示例
YAML::VERSION # "1.2.2"
a = "foo" # => "foo"
a.force_encoding("BINARY") # => "foo"
YAML.dump(a) # => "--- !binary |-\n Zm9v\n"
Run Code Online (Sandbox Code Playgroud)
更新:得到了我自己的答案
YAML::ENGINE.yamler='syck'
YAML.dump(a) # => "--- foo\n"
Run Code Online (Sandbox Code Playgroud)
因此,看起来像使用旧的yamler引擎强制旧的行为.
更新:有我自己的答案
YAML::ENGINE.yamler='syck'
YAML.dump(a) # => "--- foo\n"
Run Code Online (Sandbox Code Playgroud)