续集永远不会返回UTF-8,只是ASCII码8位(sequel never returns utf-

2019-07-17 16:17发布

还有我试图连接到这个MySQL数据库。 DataMapper的很好的获取一切都在UTF-8,但续集总是返回ASCII-8位与.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)

该工程是手动迫使编码每个字符串,它是非常不太理想的唯一的事情。

Answer 1:

尝试Sequel.mysql2代替Sequel.mysqlSequel.mysql使用旧mysql驱动程序而不是新mysql2驱动程序,我不相信mysql驱动程序支持的编码。



Answer 2:

编码可以作为做传递:

Sequel.connect("mysql2://user:pass@localhost/the_database?encoding=utf8")


文章来源: sequel never returns utf-8, just ascii-8bit