私はutf-8エンコードで保存されたデータファイルを持っており、そのデータをerb
テンプレートに埋め込みたいとします。データファイルは、上部にutf-8で明示的にエンコードされています。しかし、erbエンジンを実行している間に私はEncoding::CompatibilityError
エラーが発生します。erbテンプレートでutf-8エンコードデータを使用する方法
RubyのデフォルトのエンコーディングはASCIIだと思っていましたが、erbテンプレートもasciiでエンコードする必要がありました。明示的にutf-8に変更しましたが、良いことはありません。ここで
は、データ・ファイルである:ここで
# coding: utf-8
samples: [
{ name: '北京', city: '北京' }
]
はエルブテンプレートです:
<% # -*- coding: UTF-8 -*- %>
#...
<p><%= samples[:name] %></p>
これはRuby 1.9上にあることを確認したいですか?エンコードの動作が1.8と1.9の間で変更されました。 –
はい、それは 'Ruby 1.9.2p290'です – steveyang