1

我使用下一个设置连接到远程数据库:

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

它连接良好,但是当我进行查询时,我收到类似地址:“п⌠п╟п╪п╟п?п╦п?п░п╩я▄я├п╣я│я┌”

我还尝试了另一种连接方式,例如:

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 !

有任何想法吗?我需要用普通字符集连接到这个数据库

4

1 回答 1

0

在我看来,您的数据库区域设置与您期望的不同 您是否在任何阶段更改或设置了它?

在连接字符串中声明它是不够的

你可以在这里找到如何检查你的数据库字符集

如何查看 MySQL 数据库/表/列的字符集是什么?

于 2013-07-21T18:22:19.860 回答