我使用下一个设置连接到远程数据库:
class MyModel < ActiveRecord::Base
self.table_name = 'users'
establish_connection(
adapter: "mysql2",
host: "host_ip",
encoding: "koi8u",
username: "custom_name",
password: "password",
database: "db_name")
end
它连接得很好但是当我查询时,我会收到类似地址的内容:“п⌠п╟п╪п╟п?п╦п?п░п╩я▄я├п╣я│я┌”< / p>
我还尝试了另一种连接变体,如:
connection = Mysql2::Client.new( host: 'host_name',
username: 'user',
password: 'password',
port: 3306,
database: 'db_name',
encoding: 'koi8u',
reconnect: true
)
在这种情况下,我收到连接对象,但无法进行查询......当我使用时 connection.query(“SELECT * FROM users”)它返回连接对象... 此外,当我检查编码时,它返回:
MyModel.first.Address.encoding.name
MyModel Load (6.8ms) SELECT `users`.* FROM `users` ORDER BY `users`.`login` ASC LIMIT
1
=> "UTF-8"
在设置中我使用koi8u!
我在这个数据库中检查MySQL服务器上的字符集 - 它被设置为koi8u!
有什么想法吗?我需要使用普通字符集连接到此DB
答案 0 :(得分:0)
在我看来,您的数据库区域设置与您预期的不同 你有没有改变它或在任何阶段设置它?
仅在连接字符串
中声明它是不够的您可以在此处找到如何检查数据库字符集的内容
How do I see what character set a MySQL database / table / column is?