论坛首页 编程语言技术论坛

Rails应用中连接Mysql数据库的字符集引起中文乱码问题的解决

浏览 3523 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-03-02  
一、在Rails中在database.yml中设置如下,一定要指定字符集为utf8
development:
  adapter: mysql
  database: demo_development
  username: root
  password:
  host: localhost
  encoding: utf8
二、在Mysql中
1、建立数据库时要指定字符集为utf8
create database demo_development default charset=utf8
或create database demo_development character set utf8 collate utf8_general_ci;
这样Mysql的客户端工具中文显示才能正常,如navicat,NetBeans中的SqlCommand等。
2、WinXP用cmd下的client浏览数据时,通过mysql -h 127.0.0.1  -u root -p,
每次登录后执行一次set character_set_results    = 'gbk';
之后select命令的结果集中文显示才能正常。


   发表时间:2008-03-02  
唉,已经有很多这样的帖子啦
0 请登录后投票
   发表时间:2008-03-02  
刚才我还在找呢,我缺少的是database.yml里面的encoding: utf8

你缺少的也许是:
my.ini 或者my.cnf中
[mysqld]

character-set-server=utf8
#collation-server=utf8_general_ci
default-character-set=utf8

在console中
>status;
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8

得到以上信息,表示mysql默认为utf8编码。

0 请登录后投票
   发表时间:2008-03-03  
二楼的朋友,我发贴的目的是让新手节省时间,很快看到学习成果,激发学习兴趣,你说的已经有很多这样的帖子,都是分开讨论Mysql和Rails字符集的,我初学的时候mysql和rails都按缺省配置,在rails应用中从网页上录入中文,写入数据库后,再从网页上访问,都正常,但是用MySql工具看到的都是乱码,为解决这一问题,我耗时三天,反复实验,才把问题解决,当然,原理也搞清楚了,你说的那些帖子我也看了些,但他们没有把mysql和rails结合起来讨论,例如三楼长沙的朋友,在在database.yml中漏掉了ncoding:,无谓的耗费了一些时间。
0 请登录后投票
   发表时间:2008-03-03  
wangqidong 写道
二楼的朋友,我发贴的目的是让新手节省时间,很快看到学习成果,激发学习兴趣,你说的已经有很多这样的帖子,都是分开讨论Mysql和Rails字符集的,我初学的时候mysql和rails都按缺省配置,在rails应用中从网页上录入中文,写入数据库后,再从网页上访问,都正常,但是用MySql工具看到的都是乱码,为解决这一问题,我耗时三天,反复实验,才把问题解决,当然,原理也搞清楚了,你说的那些帖子我也看了些,但他们没有把mysql和rails结合起来讨论,例如三楼长沙的朋友,在在database.yml中漏掉了encoding:,无谓的耗费了一些时间。


windwos上开发的时候database.yml中漏掉了encoding没事,但是部署到linux上,似乎就需要加上。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics