看了一些朋友关于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!
至此,我系统里的中文问题基本解决
分享到:
相关推荐
总的来说,DataMapper 是 Ruby 开发者处理遗留数据库的理想选择,它提供了一种高效的 ORM 解决方案,帮助开发者以面向对象的方式管理和操作数据,降低了与底层数据库的耦合度。通过深入学习和使用 DataMapper,...
这个框架整合了多个代码分析工具,提供了一站式的解决方案来检查Ruby项目中的潜在问题。 MetricFu 包含了一系列的度量方法,它们能够分析代码的复杂性、重复性、错误倾向以及可读性等方面。以下是一些主要的度量...
这种融合不仅提高了开发效率,还降低了维护成本,尤其对于那些需要整合已有Java系统的Rails项目来说,RJB是一个强大的解决方案。了解和掌握RJB的使用,将有助于提升Web开发者的跨平台能力,拓宽技术视野。
了解并研究这样的库可以帮助我们理解过去的技术栈,同时也能引导我们寻找更适合当前需求的解决方案。对于那些需要处理Excel文件的项目,可以选择更新且更全面的库,如Roo,以确保更好的兼容性和功能性。
它包含了70个最常见的编程难题解决方案,旨在帮助开发者解决实际工作中可能遇到的问题。 - **内容更新**: 本书所有食谱均已根据Rails 3的最新特性进行了更新,确保提供的解决方案与当前技术保持一致。 #### 二、...
1. **Coreseek简介**:Coreseek是基于Sphinx开发的一个中文全文检索解决方案,专门针对中文环境进行了优化,提供了更优秀的中文分词支持。 2. **安装步骤**: - **下载安装包**:访问Coreseek官网下载最新的稳定...
**Rinn 开源项目概述** Rinn 是一个专注于Ruby编程语言的开源项目,它为Ruby开发者提供了对CORBA(Common Object Request Broker ...对于希望在Ruby中实现分布式解决方案的开发者来说,Rinn 是一个值得考虑的选项。
开源项目-khaiql-dbcleaner.zip提供了一个高效、灵活的数据库清理解决方案,受到了Ruby社区中著名的database_cleaner库的启发。 1. **项目背景与目标** khaiql-dbcleaner项目旨在为开发团队提供一个工具,用于自动...
三是构建一个混合解决方案,比如在ASP.NET中处理复杂业务逻辑,而PHP负责前端展示。 对于Rails,它是基于Ruby语言的Web开发框架,以敏捷开发和“约定优于配置”为原则。ASP.NET可以通过创建API端点,使Rails应用...