中关村村草 发表于 2011-02-21 10:32

Windows下ruby1.8.7配合rails2.3.4配合oracle 10g 安装配置并解决中文网页乱码问题

转:robinshaw

Windows下ruby1.8.7配合rails2.3.4配合oracle 10g 安装配置并解决中文网页乱码问题


本文重点写一个大体流程,细节方面请参考其他众多高手的文档
一、安装配置
(1)安装ruby,过程略
(2)安装rails及其依赖包和Oracle驱动,包的可行安装顺序如下:
rake-0.8.7.gem
rack-1.0.1.gem
activesupport-2.3.4.gem
activerecord-2.3.4.gem
actionpack-2.3.4.gem
actionmailer-2.3.4.gem
activeresource-2.3.4.gem
rails-2.3.4.gem
activerecord-oracle_enhanced-adapter-1.2.2.gem
ruby-oci8-2.0.4-x86-mingw32.gem

若没有互联网网络条件,可以下载这些包,为了方便,编1个批处理程序,完成这些安装。

二、编码问题的解决(主要是采用(2)的模式值得探讨)
(1)数据库编码:UTF8,脚本编码:UTF8
对于web访问来说没有任何问题,若数据库客户端要正常访问,必须将Oracle 客户端的环境变量nls_lang设为AL32UTF8,或其他形式的UTF8编码格式。
点评:如果数据库没有使用到其他编码模式,推荐使用此模式

(2)数据库编码:GBK(即oracle的SIMPLIFIED CHINESE_CHINA.ZHS16GBK),脚本编码:GBK,GB2312等中文编码系列
rails自身缺陷,web访问会有问题,会造成很多汉字无法正确显示,并且scaffold生成后,网页上edit功能会出现无法提取汉字的错误等等。最简单的修改方法:
1)在控制器ApplicationController.rb中
找到 class ApplicationController < ActionController::Base

下面加入代码before_filter :configure_charsets
def configure_charsets
   response.headers["Content-Type"] = "text/html; charset=GBK"
end $KCODE='gbk' #因为其他插件可能改变了KCODE

三、自己建立一个scaffold,运行服务器,测试是否正常,中文都能显示和编辑并写入数据库

这是本人大量google,baidu后总结的方法,请大家批评指正
页: [1]
查看完整版本: Windows下ruby1.8.7配合rails2.3.4配合oracle 10g 安装配置并解决中文网页乱码问题