Friday, February 09, 2007

Ruby on Rails 模板及MYSQL中文乱码问题

原文http://www.javaeye.com/article/34399

1、render使用中的问题
当页面错误要跳转到固定的页面的时候,用了Render
这样的代码,总说页面找不到,没找到原因,后台看了路径显示好像也没有问题
render :file => "#{RAILS_ROOT}/public/404.html",
:status => '404 Not Found'

换成下面的代码就可以了
render :text => File.read("#{RAILS_ROOT}/public/400.html"),
:layout => 'application',
:status => "500 Error"

2、中文字符截取的问题
原理就不多说了,正常用中文或则日文的时候长度是>1的,解决办法
在config/environment.rb里加上一行:
$KCODE = 'utf8'

或则在启动的时候加上ruby.exe -KU script/server
然后就可以用split方法把string转成char来进行截取

<%= @title.split(//)[0,10] %> #截取title字段的前10个字符

3、把开发工具和工程的编码改为UTF-8,能显示中文,但mysql的中文全是乱码

在database.yml里面加上
encoding: utf8

No comments :