我试图连接到这个mysql数据库。 DataMapper以UTF-8很好地获取所有内容,但Sequel总是返回ASCII-8bit中的字符串,这会产生.to_json的错误。
为了让它发挥作用,我尝试了几件事。
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
DB.run 'set names utf8'
Sequel.mysql 'db', (...), :encoding => 'utf-8'
我有宝石:mysql(2.9.0)(试过没有),mysql2(0.3.11)和续集(3.42.0)
唯一有效的方法是手动强制对每个字符串进行编码,这个字符串不是理想的。
答案 0 :(得分:21)
尝试使用Sequel.mysql2
代替Sequel.mysql
。 Sequel.mysql
使用旧的mysql
驱动程序而不是新的mysql2
驱动程序,我不相信mysql
驱动程序支持编码。
答案 1 :(得分:1)
编码可以按原样传递:
Sequel.connect("mysql2://user:pass@localhost/the_database?encoding=utf8")