13

私が接続しようとしているこのmysqlデータベースがあります。DataMapperはUTF-8ですべてをうまくフェッチしますが、Sequelは常に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)

動作する唯一のことは、理想的とは言えないすべての文字列に手動でエンコードを強制することです。

4

2 に答える 2

21

Sequel.mysql2の代わりに試してくださいSequel.mysql。 新しいドライバーではなくSequel.mysql古いドライバーを使用しており、ドライバーがエンコーディングをサポートしているとは思えません。mysqlmysql2mysql

于 2012-12-30T02:22:19.203 に答える
1

エンコーディングは do のように渡すことができます:

Sequel.connect("mysql2://user:pass@localhost/the_database?encoding=utf8")
于 2015-03-03T16:33:13.987 に答える