我开发了与Mysql数据库链接的Rails应用程序。

在Rails控制台中

irb(main):002:0> Rails.application.config.encoding
=> "utf-8"


我的资料库

我使用Scalingo进行部署(某种Heroku),我的database.yml看起来如下:

"production"=>{"adapter"=>"mysql", "database"=>"****", "pool"=>5, "timeout"=>10000, "encoding"=>"utf8", "username"=>"****", "password"=>"<password>", "port"=>30324, "host"=>"****"}}


我的应用程序和数据库配置正确,但是例如在数据库上写入名称“é”时,它会返回:

=> #<Node id: 21, name: "\xC3\xA9", created_at: "2015-05-18 06:43:29", updated_at: "2015-05-18 06:43:29">


如何解决此问题?



用mysql2替换gem mysql以及mysql2的适配器

最佳答案

首先,您需要通过定义utf-8编码来设置database.yml

development:
        adapter: mysql
        encoding: utf8
        database: my_international_db
        username: user
        password: password
        socket: /var/run/mysqld/mysqld.sock


现在还要检查您的mysql conf文件

在/etc/mysql/my.conf中

...
[client]

default-character-set=utf8

...
[mysqld]

default-character-set=utf8
character-set-server=utf8
default-collation=utf8_unicode_ci
...


如果以上均不存在,则无需执行任何操作。如果更改了任何内容,则重新启动mysql服务器

sudo /etc/init.d/mysql restart


请告诉我

关于mysql - 应用程序和数据库UTF-8编码,但仍然异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30296664/

10-09 08:23
查看更多