六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 120|回复: 0

Rails:中文乱码解决方案

[复制链接]

升级  34.67%

28

主题

28

主题

28

主题

秀才

Rank: 2

积分
102
 楼主| 发表于 2013-2-7 19:24:28 | 显示全部楼层 |阅读模式
①、安装mysql时,默认字符集为latin1       (无须改动)   

②、通过这种方式生成你的应用(myblog),以便配置mysql rails myblog  -d  mysql


③、修改.\config下的database.yml   encoding: utf8


④、确保你所用的数据库:character_set_database ='utf8',如果不是(默认为latin1)
可以通过Create DATABASE db_name  DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
或者Alert DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;来设置


⑤、如果你是通过ActiveRecord插入数据,那么ActiveRecord连接数据库时,也要加上
:encoding => 'utf8' (相当于在mysql下执行set names 'utf8') 此时插入中文时会出错提示              
Mysql::Error: Incorrect string value:'\xB1\xB1\xBE\xA9\xD0\xF1...'那么需要将你的程序文件另存为utf8格式
           
当然如果改为:encoding => 'gb2312',就不会出现上面的错误,不过我还是提倡:encoding => 'utf8',毕竟utf8gb2312更强大嘛!


⑥、所有.html.erb文件都另存为utf8格式


*PS:
可以通过UltraEdit来另存,方法如下:“文件-->转换-->ASCIIUTF-8(Unicode编辑)”然后保存即可。
mysql查看字符集命令:
SHOW VARIABLES LIKE '%collation%';
SHOW VARIABLES LIKE '%character%';
<!--EndFragment-->


<!--EndFragment-->
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表