ruby – 通过Mongoid ORM将UTF8兼容字符串保存到MongoDB时,字符
发布时间:2020-12-17 03:00:01 所属栏目:百科 来源:网络整理
导读:我使用Mongoid为我的ORM将数据从 MySQL表导入MongoDB.尝试将电子邮件地址另存为字符串时出错.错误是: /Library/Ruby/Gems/1.8/gems/bson-1.2.4/lib/../lib/bson/bson_c.rb:24:in `serialize': String not valid UTF-8 (BSON::InvalidStringEncoding) from /
我使用Mongoid为我的ORM将数据从
MySQL表导入MongoDB.尝试将电子邮件地址另存为字符串时出错.错误是:
/Library/Ruby/Gems/1.8/gems/bson-1.2.4/lib/../lib/bson/bson_c.rb:24:in `serialize': String not valid UTF-8 (BSON::InvalidStringEncoding) from /Library/Ruby/Gems/1.8/gems/bson-1.2.4/lib/../lib/bson/bson_c.rb:24:in `serialize' 从我的GUI – 这是表信息的屏幕截图.您可以看到它以UTF8编码. 同样来自我的GUI – 这是我导入的MySQL表中字段的屏幕截图 当我从MySQL CLI获取数据时会发生这种情况. 最后,当我检查ruby对象中的数据时,我得到的内容如下所示: 我在这里有点困惑,因为无论我的表是UTF-8还是那个funky显然是有效的UTF-8字符作为双字节.任何人都知道我为什么会收到这个错误? 解决方法
尝试使用这个帮手:
http://snippets.dzone.com/posts/show/4527 它提出了一个方法utf8?在字符串上.所以你可以从mysql中获取String并查看它是否是utf8: my_string.utf8? 如果不是,那么您可以尝试使用其他方法更改String的编码: my_string.asciify_utf8 my_string.latin1_to_utf8 my_string.cp1252_to_utf8 my_string.utf16le_to_utf8 也许这个String在其中一个编码中保存在mysql上. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |