8

問題は次のとおりです。UTF-8の文字列があり、US-ASCIIの文字列がある可能性があります。エンコーディングに関係なく、例に示すようStringに、これらの役に立たないオブジェクトではなく、YAML.dump(str)で実際にオブジェクトをダンプしたいと思います。!binary

YAML.dump()に正しいことを強制するためのフラグや何かが表示されていませんか?

Ruby1.9.1の例

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

Ruby1.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エンジンを使用して、古い動作を強制するように見えます。

4

1 に答える 1

4

更新:私自身の答えを得た

YAML::ENGINE.yamler='syck'
YAML.dump(a)               # => "--- foo\n" 
于 2012-05-03T03:02:17.477 に答える