处理不兼容的字符编码:UTF-8和ASCII-8BIT

5 ruby ruby-on-rails passenger utf-8 character-encoding

我在生产中遇到不兼容的字符编码错误.我尝试在本地重现它,但没有运气.这是错误消息:

A ActionView::Template::Error occurred in controller_name#action_name:

 incompatible character encodings: UTF-8 and ASCII-8BIT
 activesupport (3.0.5) lib/active_support/core_ext/string/output_safety.rb:80:in `concat'
Run Code Online (Sandbox Code Playgroud)

config.encoding已在application.rb中设置为"utf-8".令我感到困惑的是,这个问题在乘客重启后只持续了一段时间,并在一段时间后消失.进一步调试异常回溯给了我这个:

activesupport (3.0.5) lib/active_support/core_ext/string/output_safety.rb:80:in `concat'
activesupport (3.0.5) lib/active_support/core_ext/string/output_safety.rb:80:in `concat'
actionpack (3.0.5) lib/action_view/template/handlers/erb.rb:14:in `<<'
app/views/web/controller_name/action_name.erb:98
<%currentUrl = request.url%>
Line 98: <a href="<%= raw currentUrl %>" id="xyz">
Run Code Online (Sandbox Code Playgroud)

在" ActionView :: Template :: Error(不兼容的字符编码:UTF-8和ASCII-8BIT) "中提到ActionDispatch::Request可能会导致问题,但我对一段时间后问题如何修复自己一无所知!

Len*_*art 0

# encoding: UTF-8尝试通过添加到文件顶部将文件编码设置为 UTF-8 。