在轨道视图中混合使用UTF-8和非UTF-8

时间:2013-11-24 16:02:58

标签: ruby-on-rails encoding utf-8 ascii

我最近在几乎所有观点中都发现了一个奇怪的,间歇性的/罕见的Encoding::CompatibilityError: incompatible character encodings: UTF-8 and ASCII-8BIT错误。

我能够通过发送(可能是非标准的?)请求(例如curl 'http://rails.host.com:3000/?x=✓'

)来重现它

问题归结为一种奇怪的鸡尾酒效果不佳:

  • 在其中一个布局中,我们使用request.fullpath - 此可以生成一个具有#<Encoding:ASCII-8BIT>编码的字符串。很少,但它可能会发生。
  • 在页脚布局中,我们有© UTF-8字符。

所以当这种致命的鸡尾酒混合在一起时,会产生上述错误。

现在问我的问题:解决此问题的最佳方法是什么?,理想情况下会减少再次出现的可能性

  • 选项A:尝试永远不要在视图中使用UTF-8字符(始终对所有字符串进行HTML编码)
  • 选项B:强制request.fullpath以某种方式使用UTF-8编码
  • 选项C:我无法想出的其他内容

A,B看起来都像解决方案一样脆弱,每当更新或添加视图时,很容易错过这些。所以我希望C ...

0 个答案:

没有答案