Ruby on rails Rails中的Unicode符号';看法

Ruby on rails Rails中的Unicode符号';看法,ruby-on-rails,model-view-controller,unicode,utf-8,Ruby On Rails,Model View Controller,Unicode,Utf 8,我试图在Rails视图中包含一个学位符号。如果我将学位符号(°)直接放入.html.erb文件中,浏览器会以正常方式显示它 但此符号应通过字符串传输到视图。问题就从这里开始了 如果我这样说: <%= 176.chr %> 进入ruby源代码,我得到 incompatible character encodings: UTF-8 and ASCII-8BIT 如何使Rails在默认情况下将所有视图识别为UTF-8?这应该已经在应用程序.rb内部/config/中指定 相关部分应如下

我试图在Rails视图中包含一个学位符号。如果我将学位符号(°)直接放入.html.erb文件中,浏览器会以正常方式显示它

但此符号应通过字符串传输到视图。问题就从这里开始了

如果我这样说:

<%= 176.chr %>
进入ruby源代码,我得到

incompatible character encodings: UTF-8 and ASCII-8BIT

如何使Rails在默认情况下将所有视图识别为UTF-8?

这应该已经在
应用程序.rb
内部
/config/
中指定

相关部分应如下所示:

module App
  class Application < Rails::Application
    # Configure the default encoding used in templates for Ruby 1.9.                                                                                                                                     
    config.encoding = "utf-8"    
  end
end

有关Ruby 1.9编码的详细信息,请参见

您可以在HTML中使用此符号的特殊替换:
°


你必须把它放在HTML中,在外部。或者使用原始助手。或者将其标记为html_安全。顺便问一下,您是否尝试在您的chr中提供编码?比如
176.chr(\uuuuu ENCODING\uuuuuu)
\uuuuuu ENCODING\uuuuuu
这里不是占位符,而是Ruby的东西)或者176.chr(ENCODING::UTF\u8)。所有这些方法都应该有效。

非utf-8的东西不是您的视图,而是176.chr,对于大于127的值,它默认为ASCII-8BIT。单字节176不是有效的utf-8字符。如果config.encoding=“utf-8”已经存在,#编码:utf-8不起作用。如果我们讨论在HTML源代码中插入符号,您的回答是正确的。但是我们讨论的是从Ruby字符串中获取这个字符并将其放入视图的输出中-类似于符号,然后是它们的代码。把这当作建议。即使您已经解决了问题,也要使用实体而不是代码。html_safe可以做到这一点,但我希望将来能够插入带有任意字符码的字符。您必须将其放在html中,
之外。或者使用
raw
helper。或者将其标记为
html\u-safe
。顺便问一下,您是否尝试在
chr
中提供编码?比如
176.chr(\uuuuu ENCODING\uuuuu)
\uuuuu ENCODING\uuuuu
这里不是占位符,它是Ruby的东西)或者
176.chr(ENCODING::UTF\u8)
。所有这些方法都应该有效。=myvar.to_s+176.chr(Encoding::UTF_8)成功了。非常感谢。(但这有点可怕)。
module App
  class Application < Rails::Application
    # Configure the default encoding used in templates for Ruby 1.9.                                                                                                                                     
    config.encoding = "utf-8"    
  end
end
# encoding: UTF-8