【发布时间】:2011-01-06 22:06:25
【问题描述】:
这听起来可能微不足道,但它让我发疯了。自从上周五在 Ruby 1.9 上将应用程序发布到生产环境以来,我遇到了很多与字符编码相关的小异常。几乎所有的都是一些变化:
Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and UTF-8
我们有一个国际用户群,所以很多名字都包含变音符号等。如果我将模板修复为在很多地方使用 force_encoding,它会在 Flash 消息帮助程序中弹出。等等。
目前看来,我已经确定了我所知道的所有内容,方法是在一个地方修补 ActiveSupport 的字符串连接,然后在我的每个源文件的顶部设置 # encoding: utf-8。但是,从现在开始,为了避免字符串分配问题,我可能必须记住对我曾经做过的每个 Ruby 项目的每个文件都这样做,永远,这种感觉在我的胃里并不好。我阅读了有关 -Ku 开关的信息,但所有内容似乎都在警告它是为了向后兼容并且可能随时消失。
所以我对 1.9 经验的人的问题是:在我的每个文件中设置 #encoding 真的有必要真的吗?有没有一种合理的方法可以在全球范围内做到这一点?或者,更好的方法是为绕过内部/外部默认值的字符串的非文字值设置默认编码?
提前感谢您的任何建议。
【问题讨论】:
标签: ruby-on-rails ruby utf-8 character-encoding ruby-1.9