rails中文问题 (转自网络天空站)

 
1.在radrails中,请在project的property对话框中,左边选中info节点,右边设置编码方式为UTF-8

2.修改MySQL的配置文件C:/Program Files/MySQL/MySQL Server 5.0/my.ini,改其中的两处default-character-set=utf8,改完后重启MySQL(windows服务)。这一步也可采用instance wizard来做。

3.运行你的建库脚本,建库脚本中无须涉及到任何编码问题。

4. 修改ApplicationController 如下:
[code:1]
class ApplicationController < ActionController::Base
         before_filter :configure_charsets
                def configure_charsets
                         # @headers["Content-Type"] = "text/html; charset=utf-8"
                         @response.headers["Content-Type"] = "text/html; charset=utf-8"
                         # Set connection charset. MySQL 4.0 doesn??t support this so it
                         #will throw an error, MySQL 4.1 needs this
                         suppress(ActiveRecord::StatementInvalid) do
                         ActiveRecord::Base.connection.execute 'SET NAMES utf8'
                end
         end
end
[/code:1]



5.请在rhtml中,或者适当的layout中,加上:
[code:1]
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
[/code:1]


至此,无论是在Mysql中,前台页面中,还是在IDE中,都能正常使用中文

6.关于ruby本身的中文字串处理问题,例如size,substring等,请查看此文
http://www.blogjava.net/cap/archive/2006/12/14/87830.html
我的体会:
按照文中作者的方法配了一下,果然解决了中文的输入,显示,存储等问题,不过通过Sqlyog 查看 mysql数据表中显示的还是乱码,不过已经不影响正常使用了..
暂将中文编码问题的解决统一如下(使用GBK编码):
1.数据库中my.ini设定default-character-set=gbk;
#2.application.rb中加入:
#   before_filter :configure_charsets
#                def configure_charsets 
#                        # @headers["Content-Type"] = "text/html; charset=utf-8"
#                        @response.headers["Content-Type"] = "text/html; charset=gbk" 
#                       # Set connection charset. MySQL 4.0 doesn??t support this so it 
#                      #will throw an error, MySQL 4.1 needs this
#                         suppress(ActiveRecord::StatementInvalid) do
#                         ActiveRecord::Base.connection.execute 'SET NAMES gbk'
#                end
#   end
2.environment.rb最后加入:
   $KCODE="gbk"
   ActionController::Base.default_charset=('gbk')
3.网页头部加入:
   <meta http-equiv="content-type" content="text/html; charset=gbk" />
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值