2

Railsビューに度記号を含めようとしています。度記号(°)を.html.erbファイルに直接入れると、通常の方法でブラウザに表示されます。

ただし、このシンボルは文字列を介して表示に転送する必要があります。そしてここで問題が始まります。

私がこれを置くならば:

<%= 176.chr %>

ビューに、または置く

.... + 176.chr

ルビーソースに、私は得る

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

RailsにすべてのビューをデフォルトでUTF-8として認識させるにはどうすればよいですか?

4

2 に答える 2

3

HTML では、この記号の特別な置換を使用できます: &deg;

http://www.w3schools.com/charsets/ref_html_entities_4.asp

<%= %> の外側の HTML に配置する必要があります。または生のヘルパーを使用します。または、html_safe としてマークします。ところで、chr でエンコーディングを提供しようとしましたか? のように176.chr(__ENCODING__)(__ENCODING__ここはプレースホルダーではなく、Ruby のものです) または 176.chr(Encoding::UTF_8)。これらのアプローチはすべて機能するはずです。

于 2012-05-14T13:00:27.180 に答える
2

application.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

ここでの問題は、UTF-8本体に挿入する必要のあるASCII-8BIT文字を生成していることだと思います。

RubyコードでUTF-8文字列を使用する場合は、このマジックストリングをrubyファイルの最初の行に配置する必要があります。

# encoding: UTF-8

Ruby 1.9でのエンコーディングの詳細については、こちらをご覧ください。

于 2012-05-14T12:53:44.360 に答える