清理ruby中的奇怪编码

我现在正在玩couchdb。
我正在尝试将一些博客数据从redis(键值存储)迁移到couchdb(键值存储)。
看来我可能从不同的博客引擎中迁移了这些数据(每个人都有一个爱好:)),似乎有一些编码snafus。
我正在使用CouchREST从ruby访问CouchDB,我得到了这个:

 

问题似乎是对象的body_html部分:

 <Post:0x00000000e9ee18 @body_html="[.....]Wie Sie bereits wissen, m\xF6chte EUserv k\xFCnftig seine [...] 

这些应该是变形金刚(“möchte”和“künftig”)。

知道如何摆脱这些问题吗? 我在插入之前尝试使用ruby 1.9编码function或iconv进行了一些转换,但还没有运气:(

如果我尝试使用ruby 1.9的.encode()方法将这些东西转换为ISO-8859-1,则会发生这种情况(不同的文本,相同的问题):

 # 

我尝试将这些东西转换为ISO-8859-1

关。 你实际上想要反过来做:你 ISO-8859-1(*),你想要 UTF-8(**)。 所以str.encode('utf-8', 'iso-8859-1')更有可能做到这一点。

*:实际上你可能有Windows代码页1252,类似于ISO-8859-1,但有额外的智能引号和0x80-0x9F范围内的东西,ISO-8859-1用于控制代码。 如果是这样,请改用'cp1252'

**:嗯,你可能会这样做。 使用UTF-8是最好的方法,因此您可以存储所有可能的字符。 如果你真的想继续使用ISO-8859-1 / cp1252,那么问题可能就是Ruby错误地猜测了正在使用的字符集,你可以通过调用str.force_encoding('iso-8859-1')来修复它。 str.force_encoding('iso-8859-1')