2014-12-27 56 views
1

我嘗試使用apache2和乘客運行rails應用程序(Airesis)。 erb文件包含UTF-8編碼字符。我看到指定erb模板文件編碼

Encoding::CompatibilityError (incompatible character encodings: ASCII-8BIT and UTF-8): 

錯誤,對應於包含utf-8編碼字符的erb中的行。 有趣的是,與rvm完全相同的另一臺機器沒有這個問題。唯一的區別是,我們可以確定工作機器的默認語言環境是hu_HU.UTF-8,因爲非工作機器有C語言。但是,更改系統語言環境後問題沒有消失。

試圖指定

<% # -*- coding: UTF-8 -*- %> 

在ERB文件的開頭,經檢查發現應用類有

config.encoding = "utf-8" 

添加

Encoding.default_external = "UTF-8" 

到配置/應用的開始.rb,新增

export RUBYOPT=-Ku 

到/ etc /默認/的Apache2和

SetEnv RUBYOPT=-Ku 

到Apache的配置文件。

沒有人解決了這個問題。

我使用apache2,和所有的ruby相關的東西,包括乘客安裝使用rvm的root。 版本: 紅寶石2.1.0p0(2013年12月25日修訂版44422)[x86_64的Linux的] 滑軌4.0.2 乘客4.0.56

任何幫助理解。

回答

1

在/config/application.yml中使用非ASCII字符會導致此錯誤。