我在生产环境中遇到了不兼容的字符编码错误。我尝试在本地重现它,但没有成功。以下是错误信息:
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'
config.encoding
在application.rb中已经设置为"utf-8"。令我困惑的是,这个问题只在Passenger重新启动后的一段时间内存在,并且在一段时间后消失。进一步调试异常回溯给了我以下信息:
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">
在"ActionView::Template::Error (incompatible character encodings: UTF-8 and ASCII-8BIT)"中提到了ActionDispatch::Request
可能会导致问题,但是我不知道为什么问题会在一段时间后自行解决!