【发布时间】:2015-01-04 23:55:40
【问题描述】:
我尝试使用 apache2 和乘客运行 rails 应用程序 (Airesis)。 erb 文件包含 UTF-8 编码字符。我明白了
Encoding::CompatibilityError (incompatible character encodings: ASCII-8BIT and UTF-8):
错误,对应于 erb 中包含 utf-8 编码字符的行。 有趣的是,另一台与 rvm 设置完全相同的机器没有这个问题。我们可以确定的唯一区别是工作机器具有 hu_HU.UTF-8 作为默认语言环境,而非工作机器具有 C。但是更改系统语言环境后问题并没有消失。
试图指定
<% # -*- coding: UTF-8 -*- %>
在erb文件的开头,检查Application类是否有
config.encoding = "utf-8"
添加
Encoding.default_external = "UTF-8"
添加到 config/application.rb 的开头
export RUBYOPT=-Ku
到/etc/default/apache2,和
SetEnv RUBYOPT=-Ku
到 apache 配置文件。
他们都没有解决问题。
我使用 apache2,以及所有与 ruby 相关的东西,包括通过 root 使用 rvm 安装的乘客。 版本: ruby 2.1.0p0(2013-12-25 修订版 44422)[x86_64-linux] 导轨 4.0.2 乘客 4.0.56
感谢任何帮助。
【问题讨论】:
标签: ruby apache ruby-on-rails-4 utf-8 ruby-2.1