论坛首页 编程语言技术论坛

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

浏览 3845 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-02-20   最后修改:2011-02-20
本文重点写一个大体流程,细节方面请参考其他众多高手的文档
一、安装配置
(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后总结的方法,请大家批评指正
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics