当前位置:Gxlcms > PHP教程 > ruby怎么读取php程序保存的mysql数据库里面的乱码数据

ruby怎么读取php程序保存的mysql数据库里面的乱码数据

时间:2021-07-01 10:21:17 帮助过:37人阅读

我想使用ruby程序读取一个php程序写入的mysql数据库,发现都出来的中文是乱码,类似如下的:刘佳

如果用mysql query browser连接,在mysql里面显示也是乱码,
我看了下此数据库编码是utf-8,而且php读取显示在页面上,中文却能正常显示。

那ruby读取出来为什么是乱码呢? 有什么方法可以解决这个问题吗?

require 'active_record'

class Student < ActiveRecord::Base
end

ActiveRecord::Base.establish_connection(
  adapter:  'mysql2',
  host:     'xxxx',
  username: 'xxxx',
  password: 'xxxx',
  database: 'xxx_db',
  encoding: 'utf8'
)

puts Student.first.name

输出结果 刘佳
PHP显示的正确结果 刘佳

回复内容:

我想使用ruby程序读取一个php程序写入的mysql数据库,发现都出来的中文是乱码,类似如下的:刘佳

如果用mysql query browser连接,在mysql里面显示也是乱码,
我看了下此数据库编码是utf-8,而且php读取显示在页面上,中文却能正常显示。

那ruby读取出来为什么是乱码呢? 有什么方法可以解决这个问题吗?

require 'active_record'

class Student < ActiveRecord::Base
end

ActiveRecord::Base.establish_connection(
  adapter:  'mysql2',
  host:     'xxxx',
  username: 'xxxx',
  password: 'xxxx',
  database: 'xxx_db',
  encoding: 'utf8'
)

puts Student.first.name

输出结果 刘佳
PHP显示的正确结果 刘佳

>>> "刘佳".encode('utf-8').decode('latin1')
'å\x88\x98ä½³'

以latin解码了。

人气教程排行