webentwicklung-frage-antwort-db.com.de

Welchen Zeichensatz verwendet Microsoft Excel beim Speichern von Dateien?

Ich habe eine Java-App, die CSV-Dateien liest, die in Excel erstellt wurden (z. B. 2007). Weiß jemand, in welchem ​​Zeichensatz MS Excel diese Dateien speichert?

Ich hätte entweder gedacht:

  • windows-1255 (Cp1255)
  • ISO-8859-1
  • UTF8

ich kann jedoch keine erweiterten Zeichen (z. B. französische Buchstaben) mit einem dieser Zeichensätze dekodieren.

59
Joel

CSV-Dateien können in jedem Format vorliegen, abhängig davon, welche Codierungsoption beim Export aus Excel angegeben wurde:

UPDATE: Excel (einschließlich Office 2013) respektiert die im Dialogfeld "Speichern unter ..." ausgewählten Weboptionen nicht. Es handelt sich also um einen Fehler. Ich verwende einfach OpenOffice Calc, um meine XLSX-Dateien zu öffnen und als CSV-Dateien zu exportieren (Filtereinstellungen bearbeiten, UTF-8-Kodierung wählen).

13
Triynko

Aus dem Arbeitsspeicher verwendet Excel die maschinenspezifische ANSI-Codierung. Dies wäre also Windows-1252 für eine EN-US-Installation, 1251 für Russisch usw.

40
devstuff

Ich hatte letzte Woche ein ähnliches Problem. Ich habe eine Reihe von CSV-Dateien mit unterschiedlichen Kodierungen erhalten. Vor dem Import in die Datenbank habe ich dann die chardet-Bibliothek verwendet, um automatisch die korrekte Kodierung herauszufinden.

Chardet ist eine Schnittstelle von Mozillas zur Erkennung von Charakteren und wenn die Stichprobengröße groß genug ist (ein akzentuierter Charakter ist nicht geeignet), funktioniert es wirklich gut.

4
pi.

Diesen alten Thread aufwecken ... Wir sind jetzt im Jahr 2017. Trotzdem kann Excel eine einfache Tabelle nicht in einem CSV-Format speichern, während die ursprüngliche Kodierung erhalten bleibt.

Zum Glück lebt Google Docs im richtigen Jahrhundert. Die Lösung für mich ist, die Kalkulationstabelle einfach mit Google Docs zu öffnen und sie dann als CSV herunterzuladen. Das Ergebnis ist eine korrekt codierte CSV-Datei (mit allen in UTF8 codierten Zeichenfolgen).

4
Albert Godfrind

Russian Edition bietet CSV, CSV (Macintosh) und CSV (DOS).

Beim Speichern in einfacher CSV wird windows-1251 verwendet.

Ich habe gerade versucht, das französische Wort Résumé zusammen mit dem russischen Text zu speichern. Es wurde in HEX gespeichert, wie 52 3F 73 75 6D 3F, wobei 3F der ASCII-Code für question mark ist.

Beim Öffnen der CSV-Datei wurde das Wort natürlich unlesbar (R?sum?).

2
Quassnoi

Excel 2010 speichert eine UTF-16/UCS-2TSV-Datei, wenn Sie File > Save As > Unicode Text (.txt) auswählen. Es ist das Suffix ".txt", das Sie in ".tsv" ändern können. 

Wenn Sie CSV benötigen, können Sie die TSV-Datei in einem Texteditor wie Notepad ++, Ultra Edit, Crimson Editor usw. konvertieren und Tabulatoren durch Semikolons, Kommas oder ähnliches ersetzen. Beachten Sie, dass z. Für das Einlesen in eine DB-Tabelle funktioniert TSV oft bereits gut (und es ist oft einfacher, sie manuell zu lesen). 

Wenn Sie eine andere Codepage wie UTF-8 benötigen, verwenden Sie zum Konvertieren einen der oben genannten Editoren. 

0
FelixD

Sie können diesen Code für Visual Studio VB.Net verwenden, um die Kodierung abzurufen:

Dim strEncryptionType As String = String.Empty
Dim myStreamRdr As System.IO.StreamReader = New System.IO.StreamReader(myFileName, True)
Dim myString As String = myStreamRdr.ReadToEnd()
strEncryptionType = myStreamRdr.CurrentEncoding.EncodingName
0
kttii