在rails应用程序中设置charset

时间:2009-05-23 07:50:58

标签: html ruby-on-rails apache character-encoding

我正在尝试在RoR应用程序的html视图中设置我的charset。 我通过meta equiv标签配置了charset:
** meta http-equiv =“Content-Type”content =“text / html; charset = iso-8859-1”**

它没有用,所以我试图改变我的.htaccess(它是在apache下运行的RoR应用程序),但这是我的问题。通常我可以使用以下语句: AddType'text / html; charset = ISO-8859-1'html

但问题在于,正如大家都知道的那样,RoR没有“文件扩展名”,这打破了这个.htaccess解决方案。有人知道在布局模板或视图中设置字符集的另一种方法吗?

3 个答案:

答案 0 :(得分:13)

让您的Rails应用程序设置Content-type标头,然后您就不必担心Apache正在做什么。

response.headers['Content-type'] = 'text/html; charset=utf-8'

您可能还想添加

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

到页面本身,这样如果有人将其保存到磁盘,它将加载正确的字符集。

答案 1 :(得分:2)

我添加了一个这样的函数,但是仍然无法正常工作,我的application.rhtml中有ç~代码无效。

before_filter :configure_charsets 

# Configuring charset to UTF-8 
def configure_charsets 
   headers["Content-Type"] = "text/html; charset=UTF-8"     
end 

我添加了meta http-equiv html标记和.htaccess参数AddDefaultCharset UTF-8

那仍然没有用,还有其他任何提示吗?

答案 2 :(得分:0)

只需设置:encoding =&gt;模板名称后的'utf-8'如下:

respond_to do |f|
  f.pdf do
    render :pdf => 'path_to_template_file', :encoding => 'utf-8'
  end
end