Welche Kodierung öffnet CSV-Dateien korrekt mit Excel auf Mac und Windows?
Haben wir eine web-app für den Export von CSV-Dateien mit den fremden Zeichen mit UTF-8, no BOM. Beide Windows-und Mac-Nutzer bekommen sinnlose Zeichen in Excel. Ich habe versucht, die Konvertierung zu UTF-8 mit BOM; Excel/Win ist in Ordnung mit ihm -, Excel - /Mac-zeigt Kauderwelsch. Ich bin mit Excel 2003/Win, Excel 2011/Mac.
Hier sind alle Codierungen habe ich versucht:
Encoding BOM Win Mac
-------- --- ---------------------------- ------------
utf-8 -- scrambled scrambled
utf-8 BOM WORKS scrambled
utf-16 -- file not recognized file not recognized
utf-16 BOM file not recognized Chinese gibberish
utf-16LE -- file not recognized file not recognized
utf-16LE BOM characters OK, same as Win
row data all in first field
Das beste ist UTF-16LE mit Stückliste, aber die CSV nicht als solche erkannt. Das Trennzeichen ist Komma, Semikolon nicht die Dinge ändern.
Gibt es eine Codierung, arbeitet in beiden Welten?
InformationsquelleAutor der Frage Timm | 2011-07-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Excel Kodierungen
Fand ich die
WINDOWS-1252
- Codierung zu sein, die am wenigsten frustrierend, wenn der Umgang mit Excel. Seit seiner im Grunde Microsofts eigenen Zeichensatz, kann man davon ausgehen, es wird funktionieren auf die sowohl die Mac-und die Windows-version von MS-Excel. Beide Versionen zumindest eine entsprechende "Datei " Herkunft" oder "Datei-Kodierung" selector richtig liest die Daten.Abhängig von Ihrem system und die tools, die Sie verwenden, diese Codierung konnte auch benannt werden
CP1252
ANSI
Windows (ANSI)
MS-ANSI
oder nurWindows
unter anderen Variationen.Diese Codierung ist eine Obermenge von
ISO-8859-1
(akaLATIN1
und andere), so können Sie fallback aufISO-8859-1
wenn Sie nicht verwenden könnenWINDOWS-1252
aus irgendeinem Grund. Beachten Sie, dassISO-8859-1
fehlen einige Charaktere ausWINDOWS-1252
wie hier gezeigt:Beachten Sie, dass die euro-Zeichen fehlt.
Diese Tabelle finden Sie unter Alan Holz.
Konvertierung
Konvertierung abgeschlossen ist anders, jedes Werkzeug und Sprache. Aber angenommen, Sie haben eine Datei
query_result.csv
den Sie wissen, istUTF-8
codiert. Konvertieren Sie es inWINDOWS-1252
miticonv
:InformationsquelleAutor der Antwort mikezter
Für UTF-16LE mit Stückliste, wenn Sie mit tab-Zeichen als Ihre Trennzeichen statt des Kommas Excel erkennt die Felder. Der Grund, warum es funktioniert, ist, dass Excel tatsächlich landet mit seiner Unicode *.txt-parser.
VORBEHALT: Wenn die Datei in Excel bearbeitet und gespeichert, es wird gespeichert als tab-getrennte ASCII. Das problem ist jetzt, dass, wenn Sie re-öffnen Sie die Datei Excel nimmt an, dass es real CSV (mit Kommas getrennt), sieht, dass es nicht in Unicode, so analysiert es als Komma-separierte - und damit wird ein hash-Wert!
Update: Die oben genannten VORBEHALT scheint nicht passiert zu sein für mich heute in Excel 2010 (Windows) zumindest, obwohl es nicht erscheint, um einen Unterschied im Sparverhalten, wenn:
gegenüber:
InformationsquelleAutor der Antwort Duncan Smart
Die Wahrheit ist: Es gibt keine Lösung. Excel 2011/Mac nicht korrekt interpretieren eine CSV-Datei mit Umlauten und diakritischen Zeichen, egal was die Codierung oder Reifen zu springen, die Sie tun. Ich würde gerne hören, jemand sagen Sie mir anders!
InformationsquelleAutor der Antwort Timm
Haben Sie nur versucht, durch Kommas getrennt und Semikolon-getrennte CSV-Datei. Wenn Sie versucht hatte, durch Tabulator getrennte CSV-Datei (auch als TSV) Sie haben die Antwort gefunden:
UTF-16LE mit BOM (byte order mark), tab-getrennt
Aber: In einem Kommentar erwähnen Sie auch, dass der TSV ist nicht eine option für Sie (ich habe nicht in der Lage zu finden, diese Anforderung in die Frage, obwohl). Das ist schade. Es bedeutet oft, dass Sie ermöglichen die manuelle Bearbeitung der TSV-Dateien, die wahrscheinlich nicht eine gute Idee. Visuelle überprüfung von TSV-Dateien ist kein problem. Außerdem können Editoren gesetzt werden, um anzuzeigen, ein Sonderzeichen zu markieren tabs.
Und ja, ich habe versucht diese auf Windows und Mac.
InformationsquelleAutor der Antwort Walter Tross
Die beste Problemumgehung für das Lesen von CSV-Dateien mit UTF-8 auf dem Mac konvertieren Sie Sie in XLSX-format. Ich habe ein Skript gemacht, die von Konrad Foerstner, die ich verbessert haben bisschen durch hinzufügen von Unterstützung für verschiedene Trennzeichen.
Laden Sie das Skript von Github https://github.com/brablc/clit/blob/master/csv2xlsx.py. Um es ausführen zu können, benötigen Sie ein python-Modul, openpyxl für Excel-Datei-manipulation:
sudo easy_install openpyxl
.InformationsquelleAutor der Antwort brablc
Hier ist die Drahtreifen, die auf den Import utf8 codierte CSV in Excel 2011 für Mac: Microsoft sagt: "Excel für Mac unterstützt derzeit nicht UTF-8." Excel für Mac 2011 und UTF-8
Yay, Weg zu gehen, MS!
InformationsquelleAutor der Antwort Timm
Scheint es in meinem Fall, dass Excel 2011 für Mac OS ist nicht mit Codierung.GetEncoding("10000"), wie ich dachte und verschwendet 2 Tagen mit, aber die gleiche iso wie auf Microsoft OS.
Der beste Beweis dafür ist, dass eine Datei in Excel 2011 für MAC mit Sonderzeichen, speichern Sie es als CSV und öffnen Sie es in der MAC-text-editor, und die chars sind verschlüsselt.
Ist für mich dieser Ansatz gearbeitet - was bedeutet, dass csv-export für Excel 2011 auf MAC-Betriebssystem verfügt über eine spezielle western europeean chars innen:
InformationsquelleAutor der Antwort user525081
UTF-8 ohne BOM arbeitet zurzeit für mich in Excel Mac 2011 14.3.2.
UTF-8 + BOM Art der arbeiten, sondern Stückliste dargestellt, als Kauderwelsch.
UTF-16 arbeitet, wenn Sie die Datei zu Importieren und den Assistenten abschließen, aber nicht, wenn man nur ein Doppelklick darauf.
InformationsquelleAutor der Antwort Craig Stuntz
Die folgenden arbeitete für mich, auf Excel 2011 für Mac-und Windows-Excel 2002:
Mit "iconv" auf dem Mac, konvertieren Sie die Datei in UTF-16 Little-Endian + name it *.txt (.txt-Erweiterung zwingt Excel zum ausführen des Textimport-Assistenten):
iconv -f UTF-8 -t UTF-16LE filename.csv >filename_UTF-16LE.csv.txt
Öffnen Sie die Datei in Excel, Textkonvertierungs-Assistenten wählen Sie:
PS UTF-16LE erstellt von iconv hat BOM-bytes FF FE am Anfang.
PPS Meine original csv-Datei erstellt wurde, auf einem Windows 7-computer, die in UTF-8-format (mit BOM-bytes EF BB BF am Anfang) und verwendet CRLF Zeilenumbrüche. Das Komma wurde als Feld-Trennzeichen und das Hochkomma als text-Kennzeichner. Sie enthalten ASCII-Buchstaben plus verschiedene lateinische Buchstaben mit Tilden, Umlaute etc, plus einige Kyrillisch. Alle richtig angezeigt in Excel für Win und Mac.
PPP Genaue software-Versionen:
* Mac OS X 10.6.8
* Excel für Mac 2011 v. 14.1.3
* Windows Server 2003 SP2
* Windows Excel 2002 v. 10.2701.2625
InformationsquelleAutor der Antwort user3137513
In meinem Fall funktionierte dies (Mac, Excel 2011, sowohl kyrillische als auch lateinische Zeichen mit den Tschechischen diakritischen Zeichen):
InformationsquelleAutor der Antwort Marek Demčák
Auf meinem Mac OS, Text Wrangler identifiziert eine CSV-Datei mit Excel erstellt, wie mit "Western" - Codierung.
Nach etwas googlen habe ich diese kleinen script (ich bin mir nicht sicher über Windows Verfügbarkeit, vielleicht mit Cygwin?):
$ cat /usr/local/bin/utf8.sh
InformationsquelleAutor der Antwort user243202
anstatt csv, versuchen die Ausgabe von html mit einer XLS-Erweiterung, und "application/excel" mime-Typ. Ich weiß, das wird in Windows arbeiten, aber kann nicht sprechen für MacOS
InformationsquelleAutor der Antwort royce3
Dies funktioniert für mich
Nun der entscheidende Punkt, wählen Sie MacIntosh als Datei Herkunft (es sollte die erste Wahl sein).
Dies ist mit Excel 2011 (version 14.4.2)
*Gibt es ein kleines dropdown-Menü in der unteren Rand des Fensters
InformationsquelleAutor der Antwort Gazzer
Lösen diese mit Hilfe von java ( UTF-16LE mit BOM ):
Beachten Sie, dass CSV-Datei verwenden soll
TAB
als Trennzeichen. Lesen Sie die CSV-Datei sowohl auf windows und MAC OS X.Finden Sie unter: Wie muss ich enkodieren/Dekodieren von UTF-16LE byte-arrays, die mit einer Stückliste?
InformationsquelleAutor der Antwort bluearrow
In meinem Fall hinzufügen Präambel-Datei, die mein problem gelöst:
InformationsquelleAutor der Antwort razon