Ich erzeuge CSV-Dateien, die in Excel geöffnet und überprüft werden müssen, sobald sie erzeugt wurden. Es scheint, dass Excel eine andere Codierung als UTF-8 benötigt.Ruby: Wie man CSV-Dateien erzeugt, die Excel-freundliche Kodierung haben
Hier ist meine Config und Erzeugung Code:
csv_config = {col_sep: ";",
row_sep: "\n",
encoding: Encoding::UTF_8
}
csv_string = CSV.generate(csv_config) do |csv|
csv << ["Text a", "Text b", "Text æ", "Text ø", "Text å"]
end
Wenn diese in Excel öffnen, werden die Sonderzeichen richtig zu werden nicht angezeigt:
Text a Text b Text æ Text ø Text å
Jede Idee, wie die richtige Codierung zu gewährleisten?
Versuchen Sie, '# encoding: UTF-8' als erste Zeile Ihrer Ruby-Datei zu setzen (zweitens, wenn Sie eine Hash-Bang-Zeile haben,' #!/Usr/bin/env ruby'). Ich glaube, Sie schreiben * in UTF-8, aber die Ruby-Quelldatei wird als US_ASCII codiert. (Mit Ruby 2.0+, Quellcodierung standardmäßig auf UTF-8) – Amadan
Ich benutze 'Ruby 2.0.0p247 (2013-06-27 Revision 41674) [x86_64-darwin12.4.0]' also nehme ich an, dass meine Installation bereits bedeutet standardmäßig UTF-8. – ChristofferJoergensen
Keine Erfahrung mit Ruby. Excel kann jedoch Semikolon-getrennte CSV-Dateien öffnen, die UTF-8-codiert sind. Aber die Datei muss am Anfang eine Stückliste haben. Und ob das Semikolon als Trennzeichen verwendet werden kann, hängt vom Gebietsschema ab. Der beste Ansatz besteht also in der Verwendung von tabulatorbegrenzten CSV-Dateien und UTF-16LE-codierten Dateien. Dies sollte die meisten Gebietsschema unabhängig sein. –