`
kitta
  • 浏览: 2192 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

遗留系统中的RUBY中文解决方案

阅读更多

看了一些朋友关于ROR中文问题的解决方法,受益匪浅;不过我的工作在一个遗留系统中,比如mysql的数据表全是latin的,sigh~``

下面的方法有点另类,并不推荐,仅作权宜之计。若众高手有更好的方法,可以一起讨论!当然除了把所有文件都改成UTF-8。

环境相关信息

  • 操作系统Suse Linux,默认编码为en_US
  • Ruby 1.8.2,rails 1.2
  • Mysql 3.x,数据表编码均为latin-1

问题一、Ruby脚本

$ruby -e "puts '诺基亚'"

执行失败,“-e:1: Invalid char `\273' in expression”

原因是ruby默认使用的KCODE是UTF-8,解决方法,使用-KN,将KCODE设置为NONE,那么:

$ruby -Kn -e "puts '诺基亚'"

问题二、Rails和数据库

在rails_home/app/controller/application.rb中添加filter:

  before_filter :set_charset
  def set_charset
    headers["Content-Type"]="text/html;charset=gbk"
  end

在rails_home/config/environment.rb中添加KCODE设置

$KCODE="none"

在众rhtml中的head标签里加入编码设置

注意事项

 还是上面的例子

$ruby -KN -e "puts '诺基亚'[0..1]"

这里会打印一个乱麻,因为这里还是使用单字节进行处理的

$ruby -KN -e "puts '诺基亚'[0..2]"

可以打印“诺”字,若要避免这种错误出现,ruby提供了一个安全的方式,建议使用:

$ruby -KN -e "puts '诺基亚'.chars[0..1]"

<meta http-equiv="content-type" content="text/html;charset=gbk">

Well done!

至此,我系统里的中文问题基本解决

 

 

分享到:
评论

相关推荐

    Ruby-DataMapper能够很好得与遗留数据库工作的ORM

    总的来说,DataMapper 是 Ruby 开发者处理遗留数据库的理想选择,它提供了一种高效的 ORM 解决方案,帮助开发者以面向对象的方式管理和操作数据,降低了与底层数据库的耦合度。通过深入学习和使用 DataMapper,...

    Ruby-MetricFu一个完整的代码度量

    这个框架整合了多个代码分析工具,提供了一站式的解决方案来检查Ruby项目中的潜在问题。 MetricFu 包含了一系列的度量方法,它们能够分析代码的复杂性、重复性、错误倾向以及可读性等方面。以下是一些主要的度量...

    利用RJB在Ruby on Rails中使用Java代码的教程

    这种融合不仅提高了开发效率,还降低了维护成本,尤其对于那些需要整合已有Java系统的Rails项目来说,RJB是一个强大的解决方案。了解和掌握RJB的使用,将有助于提升Web开发者的跨平台能力,拓宽技术视野。

    RubySpreadsheet:Ruby 的电子表格库-开源

    了解并研究这样的库可以帮助我们理解过去的技术栈,同时也能引导我们寻找更适合当前需求的解决方案。对于那些需要处理Excel文件的项目,可以选择更新且更全面的库,如Roo,以确保更好的兼容性和功能性。

    Rails.Recipes(Rails.3.Edition,2012) 英文版PDF

    它包含了70个最常见的编程难题解决方案,旨在帮助开发者解决实际工作中可能遇到的问题。 - **内容更新**: 本书所有食谱均已根据Rails 3的最新特性进行了更新,确保提供的解决方案与当前技术保持一致。 #### 二、...

    sphinx 中英文分词检索介绍

    1. **Coreseek简介**:Coreseek是基于Sphinx开发的一个中文全文检索解决方案,专门针对中文环境进行了优化,提供了更优秀的中文分词支持。 2. **安装步骤**: - **下载安装包**:访问Coreseek官网下载最新的稳定...

    Rinn-开源

    **Rinn 开源项目概述** Rinn 是一个专注于Ruby编程语言的开源项目,它为Ruby开发者提供了对CORBA(Common Object Request Broker ...对于希望在Ruby中实现分布式解决方案的开发者来说,Rinn 是一个值得考虑的选项。

    开源项目-khaiql-dbcleaner.zip

    开源项目-khaiql-dbcleaner.zip提供了一个高效、灵活的数据库清理解决方案,受到了Ruby社区中著名的database_cleaner库的启发。 1. **项目背景与目标** khaiql-dbcleaner项目旨在为开发团队提供一个工具,用于自动...

    使ASP.NET与ASP,PHP,RAILS和JAVA对话的技巧(第1部分)

    三是构建一个混合解决方案,比如在ASP.NET中处理复杂业务逻辑,而PHP负责前端展示。 对于Rails,它是基于Ruby语言的Web开发框架,以敏捷开发和“约定优于配置”为原则。ASP.NET可以通过创建API端点,使Rails应用...

Global site tag (gtag.js) - Google Analytics