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

标签 ruby-on-rails ruby unicode heroku utf-8

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

incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)

我正在运行 Cedar Stack,Rails 2.3.15。我放了

# encoding: utf-8

在我所有源文件的顶部,我在我的应用程序配置中将编码设置为 utf-8,所以我不确定还有什么可能导致此问题。我想知道是否与 Heroku 配置有关。

最佳答案

这个问题可能是由本地操作系统忽略的不可见字符引起的,确保进行正确的编码,而在 Heroku 上,这些字符弄乱了文件顶部的魔数(Magic Number)声明,你最终得到两个 ASCII -8 位和 UTF-8。

由于有问题的文件包含正则表达式,它可能是您的模型类而不是 seeds.rb。

有很多方法可以查看文件中的不可见字符。在 vi 中,只需设置选项 :set list

关于ruby-on-rails - Heroku 上的不兼容编码正则表达式匹配(ASCII-8BIT 正则表达式与 UTF-8 字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14283515/

相关文章:

ruby-on-rails - 如何与不同计算机/远处的数据库进行交互? ( ruby )

sql - Activerecord - 计数更好还是限制更好?

ruby-on-rails - 如何检索 group_by 的每组中的第一个值?

Ruby 数组在读取时初始化

javascript - 如何在不匹配特殊字符的情况下匹配 Unicode 特殊字母字符

regex - 如何在某些范围内使用 sed delete Unicode?

ruby-on-rails - 什么时候适合使用类方法而不是实例方法?

ruby-on-rails - 在 rails_admin 中,如何过滤关联计数?

如果值超出范围,Ruby 优雅的返回最小值/最大值的方法

jsp - 在 jsp 页面中阅读阿拉伯语有问题吗?