从1.9.3开始,如何在Ruby中获取YAML以将ASCII-8Bit字符串转换为字符串?

前端之家收集整理的这篇文章主要介绍了从1.9.3开始,如何在Ruby中获取YAML以将ASCII-8Bit字符串转换为字符串?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是问题所在:我可能有UTF-8字符串,我可能有US-ASCII字符串.无论编码如何,我都希望YAML.dump(str)实际转储String对象,而不是这些无用的二进制对象,如示例所示.

是否有旗帜或其他东西我没有看到迫使YAML.dump()做正确的事情?

Ruby 1.9.1示例

  1. YAML::VERSION # "0.60"
  2. a = "foo" # => "foo"
  3. a.force_encoding("BINARY") # => "foo"
  4. YAML.dump(a) # => "--- foo\n"

Ruby 1.9.3示例

  1. YAML::VERSION # "1.2.2"
  2. a = "foo" # => "foo"
  3. a.force_encoding("BINARY") # => "foo"
  4. YAML.dump(a) # => "--- !binary |-\n Zm9v\n"

更新:得到了我自己的答案

  1. YAML::ENGINE.yamler='syck'
  2. YAML.dump(a) # => "--- foo\n"

因此,看起来像使用旧的yamler引擎强制旧的行为.

解决方法

更新:得到了我自己的答案
  1. YAML::ENGINE.yamler='syck'
  2. YAML.dump(a) # => "--- foo\n"

猜你在找的Ruby相关文章