【问题标题】:Rails4 charset issue when connect to remote MySQL DB连接到远程 MySQL 数据库时出现 Rails4 字符集问题
【发布时间】:2013-07-21 16:40:07
【问题描述】:

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

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 !

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

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 mysql2


    【解决方案1】:

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

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

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

    How do I see what character set a MySQL database / table / column is?

    【讨论】:

    • 我在这个数据库中检查 MySQL 服务器上的字符集 - 它设置为 koi8u !
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 2020-11-26
    • 2019-02-13
    相关资源
    最近更新 更多