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

Ruby mysql gem inserting unicode string into mysql database

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

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

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

اليوم.. ملايين الهوات٠تودع "واتساب" للأبد

我尝试添加 force_encoding('UTF-8') 但这并没有改变任何东西,我也尝试使用 str.dump 转义但是当在 phpmyadmin 中查看时将数据转换为 u{243} 之类的 Unicode 代码点。如何解决这个问题。

已通过在插入前执行此查询来修复它 "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}')")