我开发了与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/