如何在Ruby On Rails中使用Unicode

转载 2006年06月13日 10:37:00

来自:http://www.splyb.com/madfox/index.php/2005/10/06/58

这两天玩Ruby On Rails,测试中文输入的时候总是乱码。在Ruby On Rails的wiki里有一篇How To Use Unicode Strings,照着上面做,解决了部分问题,可在输入一些文字时仍然乱码,而且不是什么特殊的字符,比如“可”这个字,怎么都不对。google了半天也没有什么有价值的东西,最后祭出delicious,居然在rubyonrails+unicode的tag下找到了一篇Getting Unicode, MySql and Rails to Cooperate,终于解决了问题,目前看来还没有新问题出现。
总结一下,大概有这样几个要点:
在MySql这边,
1. 需要把Table的Type设置成为MyISAM而不是InnoDB。
2. 将Charecter设置成为utf8
就象这样:

create table samples (
id int not null auto_increment,
foo varchar(100) not null,
bar text not null,
primary key (id)
) Type=MyISAM CHARACTER SET utf8;

在Ruby On Rails这边,
1. 要设置enviroment.rb,加入

 

$KCODE = ‘u’
require ‘jcode’

2.在application.rb的ApplicationController中加入charset的设置,并显示告知MySql使用UTF8

 

class ApplicationController < ActionController::Base
before_filter :configure_charsets

def configure_charsets
@response.headers[”Content-Type”] = “text/html; charset=utf-8″
# Set connection charset. MySQL 4.0 doesn’t support this so it
# will throw an error, MySQL 4.1 needs this
suppress(ActiveRecord::StatementInvalid) do
ActiveRecord::Base.connection.execute ‘SET NAMES UTF8′
end
end
end

然后就大功告成了。

相关文章推荐

ruby on rails使用的gem

  • 2014-04-03 17:34
  • 1.48MB
  • 下载

Ruby on Rails,使用new和create创建ActiveRecord对象及他们之间的区别

欢迎来我的博客http://blog.csdn.net/abbuggy/article/details/7944401 在前文《Ruby on Rails,使用Rails Console进行...

Ruby on Rails轻松使用

  • 2008-06-10 19:34
  • 4.68MB
  • 下载

ruby on rails -使用scaffold的CRUD

ruby on rails — scaffold scaffold 脚手架是rails非常省事的方法,实现一些简单的增删改查. CRUD 增删改查 1. 创建rails项目 $ rail...

ruby on rails使用案例

  • 2013-10-27 18:36
  • 747KB
  • 下载

Ruby on rails开发从头来(windows)(八)-使用Session创建购物车

在前面的内容里,我们演示了怎样构建一个商品的列表,这次,我们在前面内容的基础上,构建一个简单的购物车。   1.         首先我们要来创建一个保存客户购物信息的表: 数据库脚本: dr...

Ruby On Rails中REST API使用示例——基于云平台+云服务打造自己的在线翻译工具

做为一个程序员可能在学习技术,了解行业新动态,解决问题时经常需要阅读英文的内容;而像我这样的英文小白就只能借助翻译工具才能理解个大概;不禁经常感慨,英文对学习计算机相关知识太重要了!最近发现IBM的云...

ruby on rails 中使用CSV导出excel文件

Exporting CSV and Excel
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)