加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:06:03 所属栏目:百科 来源:网络整理
导读:这是问题所在:我可能有UTF-8字符串,我可能有US-ASCII字符串.无论编码如何,我都希望YAML.dump(str)实际转储String对象,而不是这些无用的二进制对象,如示例所示. 是否有旗帜或其他东西我没有看到迫使YAML.dump()做正确的事情? Ruby 1.9.1示例 YAML::VERSION
这是问题所在:我可能有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)               # => "--- foon"

Ruby 1.9.3示例

YAML::VERSION              # "1.2.2"
a = "foo"                  #  => "foo" 
a.force_encoding("BINARY") #  => "foo" 
YAML.dump(a)               # => "--- !binary |-n  Zm9vn"

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

YAML::ENGINE.yamler='syck'
YAML.dump(a)               # => "--- foon"

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

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读