Ruby 2.0,使用 Psych 的 Yaml 似乎无法转义双引号。有人有解决这个问题的想法吗?
data_ =<<END_
description: "Acme acquires ILM: Lucas says \"Inevitable!\""
END_
ap YAML.load(data_)
生产
/Users/x/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/psych.rb:205:in `parse': (<unknown>): did not find expected key while parsing a block mapping at line 1 column 1 (Psych::SyntaxError)
用单引号转义条目是可行的,但如果它包含单引号,转义它们也会导致错误。
description: 'Acme acquires ILM: Lucas says "It\'s Inevitable!"'
在理想的世界中,条目将包含正确的 unicode 印刷引号,但我无法控制这些(尽管我可以在使用 YAML 处理之前替换它们)......
关于让 YAML 正确解析这个的任何想法?
更新:回答我的问题。发现可以通过复制来转义单引号,所以这行得通:
description: 'Acme acquires ILM: Lucas says "It''s Inevitable!"'
我通过使用 YAML.dump(the-desired-string) 发现了这一点