我目前正在尝试使用couchdb。
我试图从redis(键值存储)迁移一些博客数据到couchdb(键值存储)。
由于我可能已经将此数据从各种不同的博客引擎迁移了无数次(每个人都需要一项爱好:)),似乎存在一些编码问题。
我正在使用CouchREST从ruby访问CouchDB,我得到了以下结果:
<JSON::GeneratorError: source sequence is illegal/malformed>
问题似乎出现在对象的 body_html 部分:
<Post:0x00000000e9ee18 @body_html="[.....]Wie Sie bereits wissen, m\xF6chte EUserv k\xFCnftig seine [...]
这些应该是Umlauts(“möchte”和“künftig”)。
有什么想法可以解决这些问题吗?我尝试使用Ruby 1.9编码功能或在插入之前使用iconv进行一些转换,但始终没有成功:(
如果我尝试将这些内容转换为ISO-8859-1,使用Ruby 1.9的.encode()方法,会发生以下情况(不同的文本,同样的问题):
#<Encoding::UndefinedConversionError: "\xC6\x92" from UTF-8 to ISO-8859-1>
这可能是iso-8859-1,但不知道怎么回事,它被声明为UTF8了。
这很有帮助:
post.body_html.force_encoding('iso-8859-1').encode("utf-8") - Marc Seeger