这是问题所在:我可能有UTF-8字符串,我可能有US-ASCII字符串.无论编码如何,我都希望YAML.dump(str)实际转储String对象,而不是这些无用的二进制对象,如示例所示.
是否有旗帜或其他东西我没有看到迫使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引擎强制旧的行为.
解决方法
更新:得到了我自己的答案
YAML::ENGINE.yamler='syck' YAML.dump(a) # => "--- foo\n"
原文地址:https://www.jb51.cc/ruby/270000.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。