Ruby mysql gem将unicode字符串插入mysql数据库

时间:2017-01-02 18:03:57

标签: mysql ruby unicode arabic

所以我有一些存储在Mongoid模型中的Unicode(阿拉伯语)文本数据,我想将它插入到mysql数据库中。我不得不使用gsub来逃避单引号,因为这会导致SQL插入错误。

text = model.text.squish().gsub("'", %q(\\\'))
db_con.query("insert into table (text) values ('#{text}')")

现在我的问题是当我在phpmyadmin查看数据时,我看到了

  

آيÙÙ...... ..Ù...ٔايينآهÙاتÙتÙدع”Ùاتساب“   Ù“U“Ø£OO

我尝试添加force_encoding('UTF-8'),但这并未改变任何内容,我也尝试使用str.dump进行转义但在phpmyadmin中查看时将数据转换为Unicode {243}等Unicode代码点。如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

通过在插入“SET CHARACTER SET'UTF8'”

之前执行此查询来修复它
text = model.text.squish().gsub("'", %q(\\\'))
db_con.query("SET CHARACTER SET 'UTF8'")
db_con.query("insert into table (text) values ('#{text}')")