我正在存储大型对象,它是一个巨大的散列,带有嵌套的散列、数组、字符串等。这里有一个非常相似的问题。这给出了以下猴子补丁:
class Hash
def to_utf8
Hash[
self.collect do |k, v|
if (v.respond_to?(:to_utf8))
[ k, v.to_utf8 ]
elsif (v.respond_to?(:encoding))
[ k, v.dup.encode('UTF-8') ]
else
[ k, v ]
end
end
]
end
end
这个答案很棒,但似乎没有超过 1 级深度,我不知道如何将它重构为蜘蛛通过。