注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 科普系列之-使用Windows的..
 帮助

rails与mysql之间中文数据显示不一致的问题


2008-06-25 12:49:57
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://fsjoy.blog.51cto.com/318484/83951
在使用rails做web开发的时候,数据库选用mysql会出现这种问题:
从web页面传入数据库的中文,会在mysql中显示为乱码,而在mysql中录入的数据会在web页面显示问号,原因就是字符集不统一,解决方案如下:
 
首先在rails新建项目的时候,在控制器的application.rb中加入如下代码:
 
class ApplicationController < ActionController::Base
  # Pick a unique cookie name to distinguish our session data from others'
  session :session_key => '_projectName_session_id'
  after_filter :set_charset
  def set_charset
    content_type = headers["Content-Type"] || 'text/html'
    if /^text\//.match(content_type)
      headers["Content-Type"] = "#{content_type}; charset=utf-8"  
      suppress(ActiveRecord::StatementInvalid) do  
        ActiveRecord::Base.connection.execute 'SET NAMES utf8'  
      end
    end
  end
end

 
 
 
在mysql中建立数据库时,选择编码类型为utf-8,或者将mysql的配置文件my.ini(xp下)中的default-character-set=设置成utf8, 文件中有两处需要修改,修改完成后,按照默认方式创建,即可解决开始的那个问题了!

本文出自 “李骥平” 博客,请务必保留此出处http://fsjoy.blog.51cto.com/318484/83951





    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: