我正在使用Rails 3和ya2yaml,我遇到了一个编码问题,试图将params哈希转换为yaml。 params散列的键存储为 ASCII-8BIT ,值存储为 UTF-8 。这会产生一个问题,因为ya2yaml不喜欢ASCII,如果你尝试使用ya2yaml从ASCII字符串生成yaml,你会得到这个:
---
? !binary |
b25l
: "some_value"
而不是:
---
someKey : "some_value"
布莱什。有没有人知道如何在ya2yaml中绕过这个,或强制哈希的键和值使用相同的编码?
答案 0 :(得分:0)
我最后只编写了一个复制params散列并以UTF-8编码键和值的方法:
def utf8_hash(some_hash) # convert hash key & values to utf-8 for proper translation
new_hash = Hash.new
some_hash.each do |key, value|
new_hash[key.to_s.encode(Encoding::UTF_8)] = value.to_s.encode(Encoding::UTF_8)
end
new_hash
end
utf8_hash(params).ya2yaml