2016-06-05 12 views
0

ich eine xlsx-Datei haben, ich nach dem es als CSV zu exportieren:Ruby-CSV falsch erste Zeichen

  • Export xlsx-Datei als CSV Excel verwenden, Standardcodierung
  • öffnen CSV-Datei mit Notizblock, speichern sie es erneut durch die Kodierung UTF-8-Angabe (Notizbuch speichert die BOM)
  • Öffnen sie die Datei mit CSV.read (path_to_file)

es scheint gut zu funktionieren, aber aus irgendeinem Grund der erste Header beschädigt ist von einem unbekannten Charakter (ich habe keine Ahnung, was es ist, und wenn ich versuche, es zu kopieren und einfügen verschwindet es, es als ein großes weißes Rechteck in Windows dargestellt wird)

Unknown character

Wenn ich meine Datei mit einem beliebigen Texteditor öffnen , scheint es kein Problem

Erste Zeile sieht aus wie zu sein: Id;Type....

Falls dies hilft

csv.headers.first # => ".Id" where . is that character 
csv.headers.first.first.bytes # => [239, 187, 191] 
csv.headers.first.first.b # => "\xEF\xBB\xBF" 

Wie repariere ich das?

Microsoft Windows 10, Rubin 2.2

+1

UTF8 mit BOM, was ist das Problem? –

+1

Dies könnte helfen: [Wie vermeidet man das Stolpern über UTF-8 BOM beim Lesen von Dateien] (http://StackOverflow.com/q/543225/477037) – Stefan

+0

Wie kommt es, dass diese Stückliste vom CSV-Parser nicht automatisch erkannt wird? –

Antwort

1

Das ist der UTF-8 BOM ist. Versuchen Sie, den Modus wie folgt einzustellen:

CSV.read(path_to_file, 'r:bom|utf-8') 
Verwandte Themen