我有一个Rails应用程序,我使用基于正则表达式的规则来对事务进行分类。在我的seeds.rb
中,我创建了一些类别和规则,然后从CSV文件(也是utf8编码)导入事务并允许对它们进行分类。这个过程在我的开发机器上工作正常,但是当我在Heroku上运行时,我得到:
不兼容的编码regexp匹配(ASCII-8BIT regexp与UTF-8字符串)
我正在运行Cedar Stack,Rails 2.3.15。我已经把
了# encoding: utf-8
在我的所有源文件的顶部,我已经在我的应用配置中将编码设置为utf-8,所以我不确定还有什么可能导致此问题。我想知道是否与Heroku配置有关。
答案 0 :(得分:1)
问题可能是由本地操作系统忽略的不可见字符引起的,确保进行正确的编码,而在Heroku上,字符会弄乱文件顶部的幻数字声明,最后会得到两个ASCII -8BIT和UTF-8。
由于有问题的文件包含正则表达式,因此它可能是您的模型类而不是seeds.rb。
有很多方法可以查看文件中的不可见字符。在vi
中,只需设置选项:set list