在Heroku上出现了不兼容的编码正则表达式匹配(ASCII-8BIT正则表达式与UTF-8字符串)。

9
我有一个Rails应用程序,其中我使用基于正则表达式的规则来对交易进行分类。在我的seeds.rb中,我创建了一些类别和规则,然后从CSV文件(也是utf8编码)导入交易,并允许它们被分类。这个过程在我的开发机器上运行得很好,但当我在Heroku上运行它时,我会得到以下错误信息:

不兼容的编码正则表达式匹配(ASCII-8BIT正则表达式与UTF-8字符串)

我正在运行Cedar Stack、Rails 2.3.15。
# encoding: utf-8

我在所有源文件的顶部添加了编码为utf-8的设置,并在应用程序配置中进行了相应的配置,因此我不确定还有什么其他原因导致这个问题。我想知道这是否与Heroku配置有关。
1个回答

1
该问题可能是由于本地操作系统忽略的不可见字符引起的,确保进行适当的编码,而在Heroku上,这些字符会破坏文件顶部的魔数声明,导致ASCII-8BIT和UTF-8同时存在。由于存在问题的文件包含正则表达式,所以很可能是您的模型类而不是seeds.rb文件。有许多方法可以查看文件中的不可见字符。在vi中,只需设置选项:set list即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接