【问题标题】:ruby on rails x charsetruby on rails x 字符集
【发布时间】:2009-05-23 16:38:18
【问题描述】:

我在处理 ruby​​ on rails 应用程序中的字符集时遇到问题,特别是在我的模板中。来自我的数据库的代码可以正常工作,但是位于我的视图中的 ç ~ 之类的代码无法正常工作。我将以下代码添加到我的代码中

我添加了一个类似的函数,但仍然无法正常工作我的 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 添加到 utf-8 和一个 .htaccess 参数 AddDefaultCharset UTF-8

这仍然不起作用,还有其他提示吗?

【问题讨论】:

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


    【解决方案1】:

    将这段代码放入您的配置中 (environment.rb)

    Rails::Initializer.run do |config|
      config.action_controller.default_charset = "iso-8859-1"
    end
    

    这样就可以了。

    另外,删除layouts/application.html 中的默认字符集行(如果有)

    【讨论】:

    • :-) 感谢 swanand 的编辑。我不确定如何在 Stackoverflow 中格式化。 Tx 这样做!
    【解决方案2】:

    您用于将特殊字符放入文件(源或视图)的文本编辑器是否将这些字符视为 UTF-8?例如,如果您使用 TextMate,您可以故意将文件保存为 UTF-8。如果由于某种原因您之前使用了不同的编码(可能是默认编码),那些 UTF-8 字符可能会在代码编辑阶段被转码,所以即使渲染过程始终使用 UTF-8,它仍然不会工作。

    此外,如果您使用的是来自 shell 的东西,例如 vi 或其他什么,您的终端是否设置为默认接受 UTF-8?如果您将其设置为 ISO-8859-1 或其他,您会遇到同样的问题。

    【讨论】:

    • 我仔细检查了一遍。我在我的程序员记事本中再次将文件保存为 utf-8 编码,但我仍然遇到这个问题。
    【解决方案3】:
    【解决方案4】:

    因此,如果您的文件内容为 UTF-8,并且输出被解释为 UTF-8,则介于两者之间的内容正在更改数据。可以给我们一个特殊字符的输入字节的十六进制解释(任何非 ASCII 将至少是 UTF-8 中的两个字节),以及输出字节的十六进制解释?也许我们可以弄清楚变化是什么,然后从那里开始工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-18
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      • 1970-01-01
      • 2012-08-04
      • 2011-05-20
      • 2014-11-04
      相关资源
      最近更新 更多