`
kong1616
  • 浏览: 103253 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转载】 Rails使用gb2312/gbk与utf8共存的解决方案

阅读更多
出处:http://xuxu.name/b-4755e670-2cbd-4488-8b4f-a04a1c022fea.htm

作者:xuxu



最近做个项目,需要数据库是UTF-8编码,而Rails程序使用GBK编码。(别问为什么)

那么如何实现这两种编码形式的共存呢?

首先,在创建数据库的时候,要保证数据库是UTF8编码的,然后在rails项目的conf/database.yml中数据库链接字符串加上 encoding: utf8 , 这样保证用utf8的形式来读取数据库中的数据。

然后在IDE中(我的是Apatana),“窗口->首选项->工作空间”找到文本文件编码设置,设置为默认的GBK(默认的。。)

修改项目的 config/environment.rb 文件,在最后增加两行:

$KCODE ='n'
require 'jcode'

注意,一定要在最后加,否则不起作用!

然后修改app/controllers/application.rb文件,增加如下行:
before_filter :configure_charsets
def configure_charsets
response.headers["Content-Type"] = "text/html; charset=gb2312"
end

同时还要保证其他的html文件中也将编码设置成了gb2312格式。

还要注意,若原有的存在utf8格式的view文件,也需要转成gb2312格式的。

然后就是最关键的一步!修改ruby的安装目录下的文件(假设安装在了C盘):

找到 C:"ruby"lib"ruby"1.8"xsd"charset.rb文件,

找到下面的代码


代码
CharsetMap = {
'NONE' => 'us-ascii',
'EUC' => 'euc-jp',
'SJIS' => 'shift_jis',
'UTF8' => 'utf-8',
'X_ISO_8859_1' => 'iso-8859-1',
'X_UNKNOWN' => nil,
}

修改为

代码
CharsetMap = {
'NONE' => 'gb2312',
'EUC' => 'euc-jp',
'SJIS' => 'shift_jis',
'UTF8' => 'utf-8',
'X_ISO_8859_1' => 'iso-8859-1',
'X_UNKNOWN' => nil,
}

这样就大功告成了!针对那些在rhtml中存在“删除”字样的情况就出错 的解决方案!

别忘记重新启动一下项目哦~

呵呵
分享到:
评论

相关推荐

    themes_on_rails, 向 Rails 3/4/5 应用程序添加多个主题支持.zip

    themes_on_rails, 向 Rails 3/4/5 应用程序添加多个主题支持 ThemesOnRails 安装安装最简单的方法是使用 Bundler 。将这里 gem 添加到你的Gemfile:gem 'themes_on_rails'如果要对 liquid 模板使用

    rails3.1.0解决数据库取出来的信息编码为utf-8

    标题 "rails3.1.0解决数据库取出来的信息编码为utf-8" 指向的是在使用Rails 3.1.0版本时遇到的一个常见问题,即从数据库检索的数据编码不是预期的UTF-8格式,导致显示异常或乱码。在Rails应用中,数据的正确编码对于...

    Ruby on Rails 3/4/5模型和控制器UML类图生成器。 (`brew / port / apt-get install graphviz`在使用前!)-Ruby开发

    RailRoady RailRoady生成Rails 3/4/5模型(ActiveRecord...我(Preston Lee)并不是要劫持Peter Hoeg或Javier的项目,而是创建一个专用的精益宝石,可以在Rails项目上使用而不会出现重大问题。 不支持Rails v2。 系统R

    Ruby on Rails入门例子

    Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本篇将通过一个入门实例,深入探讨Rails的基本概念和核心...

    提升Ruby on Rails性能的几个解决方案

    简介 Ruby On Rails 框架自它提出之日...Rails 是一个真正彻底的 MVC(Model-View-Controller) 框架,Rails 清楚地将你的模型的代码与你的控制器的应用逻辑从 View 代码中分离出来。Rails 开发人员很少或者可能从未遇到

    rails api

    rails的api文档,方便你查看

    转载 - 26本 Ruby/Rails 相关英文图书简评

    8. **最佳实践**:阅读相关书籍可以帮助开发者学习社区的最佳实践,例如编写清晰的代码、保持 DRY(Don't Repeat Yourself)原则、使用 TDD 和 BDD(行为驱动开发)等。 9. **Web 开发进阶**:随着经验的增长,...

    在Rails中使用SSL

    在Rails中使用SSL(安全套接层)是构建Web应用时确保数据传输安全的重要步骤。Rails框架支持在应用程序中轻松集成SSL,以保护用户敏感信息,如登录凭据和支付详情。以下是一些关于在Rails中实施SSL的关键知识点: 1...

    Rails的中文乱码问题

    1. **数据库编码**:数据库可能使用了不同的字符集,如UTF-8、GBK等。如果不一致,存储或读取中文时会出现乱码。确保数据库配置文件(如`database.yml`)中的编码设置与数据库实际设置匹配。 2. **文件编码**:...

    Mac上rails环境的搭建

    encoding: utf8 host: localhost pool: 5 username: root password: root socket: /tmp/mysql.sock development: *default database: rails_test ``` #### 六、常见问题解决 在安装和配置过程中,可能会...

    Rails中上传文件保存中文文件名乱码

    Rails默认使用UTF-8编码,但文件系统或者某些外部服务可能使用其他编码,如GBK,这就可能导致在保存或读取中文文件名时出现问题。 首先,我们需要了解Rails中的文件上传是如何工作的。在Rails中,文件上传通常通过`...

    ruby on rails与MySql的环境配置——支持rails 2.3.5以上版本

    《Ruby on Rails与MySQL环境配置详解》 在开发基于Web的应用程序时,Ruby on Rails(简称Rails)框架和MySQL数据库的结合是常见的选择。本文将详细介绍如何在Windows环境下配置Ruby on Rails以支持Rails 2.3.5及...

    rails和mysql数据库连接中出现的问题以及解决办法

    encoding: utf8mb4 reconnect: false database: your_database_name pool: 5 username: your_username password: your_password host: localhost ``` 其次,问题可能出在MySQL驱动程序上。Rails使用`mysql2`...

    使用Aptana+Rails开发Rails Web应用(中文)

    本教程将详细介绍如何使用Aptana与Rails结合,创建一个功能完备的Web应用程序。 首先,我们需要安装Aptana Studio。你可以从其官方网站下载最新版本的安装包。安装过程中,遵循提示进行,确保选择自定义安装并勾选...

    Rails项目源代码

    Rails使用ActiveRecord作为ORM,它使得Ruby类可以直接与数据库表进行交互。在这个项目中,`User`和`Image`模型可能会与数据库中的相应表关联,通过定义属性和关系,如`has_many :images`表示一个用户可以拥有多个...

    rails飞信 gem plugin api 插件的问题解决方案

    标题中的“rails飞信 gem plugin api 插件的问题解决方案”涉及到的是在Ruby on Rails框架下,使用特定的gem(一种Ruby的库或插件)来集成飞信API时遇到的问题及解决方法。飞信是中国移动推出的一种即时通讯服务,...

    Rails

    描述中提到的博文链接指向了一个ITEYE博客文章,尽管具体内容未提供,但通常这样的博客可能会包含Rails的使用技巧、最佳实践、新版本更新或者特定问题的解决方案。 标签 "源码" 暗示了可能涉及Rails的源代码分析或...

    Rails 101 入门电子书

    ### Rails 101 入门电子书知识点详解 #### 一、简介 《Rails 101 入门电子书》是一本非常适合初学者直接入门的书籍,它由xdite编写并出版于2014年6月10日。本书主要针对的是希望学习Ruby on Rails框架的读者,特别...

    Ruby-GoOnRails使用Rails生成器来生成一个Golang应用

    **Ruby-GoOnRails:利用Rails生成器构建Golang应用** Ruby on Rails(简称Rails)是一种流行的Web开发框架,以其“约定优于配置”的理念和高效的开发速度受到开发者喜爱。而Go(Golang)则是一种静态类型、编译型的...

    Rails3 使用rake启动后台任务

    8. **错误处理与日志记录**: 在后台任务中,确保捕获并记录异常,以便于调试。同时,使用日志记录工具(如 Logger 或 Rails 的 logging 功能)记录任务的执行过程。 9. **测试后台任务**: 应该为后台任务编写单元...

Global site tag (gtag.js) - Google Analytics