2013-01-11 4 views
7

Ich habe eine Rails-Anwendung, wo ich Regex-basierte Regeln verwenden, um Transaktionen zu kategorisieren. In meinem seeds.rb erstelle ich einige Kategorien und Regeln, dann importiere ich Transaktionen aus einer CSV-Datei (auch utf8-codiert) und erlaube es ihnen, kategorisiert zu werden. Dieser Prozess funktioniert auf meiner Entwicklung Maschine in Ordnung, aber wenn ich es auf Heroku laufen, erhalte ich:Inkompatible Codierung regexp Übereinstimmung (ASCII-8BIT regexp mit UTF-8-Zeichenfolge) auf Heroku

unvereinbar Codierung regexp übereinstimmen (ASCII-8BIT regexp mit UTF-8-String)

Ich betreibe der Zedernholzstapel, Schienen 2.3.15. Ich habe

# encoding: utf-8 

an der Spitze aller meine Quellcode-Dateien und ich habe die Kodierung UTF-8 in meiner app Config gesetzt, so dass ich bin mir nicht sicher, was dieses Problem verursacht werden könnte. Ich frage mich, ob etwas mit der Heroku-Konfiguration zu tun hat.

Antwort

1

Das Problem kann durch unsichtbare Zeichen verursacht werden, die von Ihrem lokalen Betriebssystem ignoriert werden, um sicherzustellen, dass eine korrekte Kodierung stattfindet, während auf Heroku die Zeichen die magische Zahl am oberen Ende der Datei durcheinander bringen und Sie beide haben ASCII-8BIT und UTF-8.

Da die Datei, die Probleme hat, die Regex enthält, ist es wahrscheinlich Ihre Modellklasse anstelle von same.rb.

Es gibt viele Möglichkeiten, unsichtbare Zeichen in Ihrer Datei anzuzeigen. In vi, setzen Sie einfach die Option :set list