Standardcodierung von Excel in UTF-8 ändern?

24

Ich verwende eine Vielzahl von Tools, um regelmäßig Daten für das Web aufzubereiten. In einer Phase muss ich eine CSV-Datei in Excel öffnen, Änderungen vornehmen und die Datei speichern.

Gibt es eine Möglichkeit, Excel zu zwingen, die UTF-8-Codierung zu akzeptieren und die Dateien mit dieser Codierung zu speichern?

Dizzley
quelle
1
Zur Verdeutlichung möchte ich eine Einstellung ändern, sodass Excel davon ausgeht, dass eine Eingabedatei standardmäßig UTF-8 ist. Wie unten erwähnt, erledigt dies LibreOffice / OpenOffice.
Dizzley
Wenn Sie nicht über Unicode-Zeichen verfügen, sollten Sie eine Middleware verwenden, um alle CSVs in ASCII zu konvertieren, und diese dann in Excel öffnen.
Vassile
1
Verwandte Frage hier aber nicht genau das gleiche.
hhh

Antworten:

14

Ich habe unter Standardzeichencodierung für Excel-Text-Assistenten eine ähnliche Frage beantwortet . .

Ich fand meine Antwort unter Ändern des Standardtextimportursprungtyps in Excel .

  1. Wechseln Sie im Registrierungseditor zu HKEY_CURRENT_USER> Software> Microsoft> Office> [Excel-Version hier - wahrscheinlich die höchste Nummer in diesem Ordner]> Excel> Optionen
  2. Klicken Sie mit der rechten Maustaste auf die rechte Seite und gehen Sie zu Neu> DWORD
  3. Benennen Sie das Element DefaultCPG, und speichern Sie
  4. Klicken Sie mit der rechten Maustaste auf DefaultCPG und wählen Sie Ändern
  5. Stellen Sie die Basis auf Dezimal ein
  6. Geben Sie den Code ein, der im Excel-Assistenten angezeigt wird (für UTF-8 65001).
  7. OK klicken.

Wie Vasille im Kommentar zu dieser Frage sagt, möchten Sie die Zeichen in der Datei möglicherweise vor dem Öffnen in Excel in die gewünschte Kodierung konvertieren, wenn Ihre Datei nicht im UTF-8-Format vorliegt. Für meine Zwecke ist UTF-8 jedoch gut genug, um nicht beschädigte Zeichen anzuzeigen.

Robert H.
quelle
3
Gibt es Gründe, dies nicht zu tun? Warum ist dies nicht das Standardverhalten von Excel? --- Mein Team beschäftigt sich häufig mit Datensätzen, die fremde Zeichen enthalten, und ich frage mich, ob es einen Grund gibt, diese Aktion nicht auf jedem unserer Computer auszuführen.
user1318135
3
Dies funktionierte leider nicht auf meiner Maschine. Dateien werden weiterhin mit der Standardcodierung geöffnet (Win 7, Office 2016).
user1318135
8
Funktioniert bei mir auch nicht, Win 10 Office 2016
Phuah Yee Keat
2
Kein Würfel. Excel verhält sich so dumm wie immer. Man würde erwarten, dass eine offensichtliche Funktion wie diese über eine Benutzerpräferenz in einer so ausgereiften Software wie Excel zugänglich ist.
Aaron Bramson
4

Eine einfache Möglichkeit, die Excel-ANSI-Codierung in UTF-8 zu ändern, besteht darin, die CSV-Datei im Editor zu öffnen und dann Datei> Speichern unter auszuwählen. Unten sehen Sie, wie die Kodierung auf ANSI eingestellt ist. Ändern Sie sie in UTF-8 und speichern Sie die Datei als neue Datei.

Moudiz
quelle
Ich werde damit experimentieren. Ein Problem, das ich habe, ist das konsistente Öffnen von Dateien in der richtigen Codierung, sodass ich keine Daten in zwei Codierungen in einer einzigen Ergebnisdatei erhalte. Dann wird es schwer zu beheben. Ich wünschte wirklich, Excel hätte mir eine bessere Möglichkeit geboten, die Kodierung der Eingabedateien zu wählen.
Dizzley
2

Sie müssen die File > ImportOption verwenden und mit einem leeren Dokument beginnen und angebenUTF-8

Bildbeschreibung hier eingeben

Dies ist jedoch alles andere als optimal, um dies als Standardeinstellung für alle Dateien festzulegen. Es ist jedoch nicht erforderlich, die Dateien um Google Drive oder LibreOffice zu drehen. Die Standardeinstellungen sind nur schlecht gewählt und die Unfähigkeit, Änderungen vorzunehmen, ist irritierend.

verbunden

  1. So legen Sie die Zeichenkodierung beim Öffnen von Excel fest , finden jedoch keine Möglichkeit, die Standardeinstellungen so zu ändern, dass alle Dateien automatisch mit UTF-8 anstelle des Macintosh-Formats in OSX geöffnet werden

  2. So ändern Sie die Standarddateioption in UTF-8 anstelle der Macintosh- Dateioption in Apple.SE.

hhh
quelle
0

Ich habe vorher ein ähnliches Problem gelöst. Erfolglos, aber Sie können LibreOffice verwenden , das standardmäßig UTF-8 ist.

Lluser
quelle
LibreOffice ist dafür sehr praktisch. Manchmal muss ich jedoch VBA-Makros ausführen. Danke Lluser
Dizzley
0

Für die Arbeit mit Unicode-CSV-Dateien steht hier ein Excel-Add-In zur Verfügung , das Ihnen helfen soll.

Hier ist der Hinweis des Entwicklers Jaimon Mathew:

Excel behandelt CSV-Dateien als Textdateien und ersetzt alle Unicode-Zeichen durch "?", Wenn sie normal gespeichert werden. Wenn Sie die Unicode-Zeichen beibehalten möchten, müssen Sie die Datei als „Unicode-Text (* .txt)“ speichern, eine durch Tabulatoren getrennte Datei. Da ich keine Lösung gefunden habe, um Unicode-Zeichen im CSV-Format beizubehalten, habe ich mir überlegt, ein Excel-Add-In zu erstellen, um genau das zu erreichen.

1

Karan
quelle
0

Es ist nicht die beste Lösung, aber eine Option: Laden Sie Ihre Excel-Datei auf Google Drive hoch, öffnen Sie sie mit Google Tabs und laden Sie sie als CSV-Datei herunter. Es hat bei mir funktioniert.

Viktor
quelle
5
Dies beantwortet nicht die Frage, wie die Codierung des Excel-Dokuments geändert werden kann.
Ramhound
Wenn Sie die CSV-Datei in Excel öffnen, verlieren Sie natürlich die Zellenformatierung, sodass einige numerische ID-Zeichenfolgen in Ganzzahlen konvertiert werden.
Dizzley
0

Angenommen, Sie haben eine Unix-Shell zur Verfügung (Cygwin), füge ich an die Vorderseite der CSV-Datei eine kleine 3-Zeichen-Unicode-ID (UTF-8) an, und dann liest es gut in Excel und was noch wichtiger ist, es wird ordnungsgemäß als Eingabe mit VB Excel verarbeitet Automatisierung.

UTF-8.txt

EFBBBF << Hex-Bearbeitung in eine 3-Zeichen-Datei.

cat UTF-8.txt file-to-use.csv> new_file.csv

avwtp
quelle
1
(1) Können Sie beschreiben, wie / warum dies funktioniert? (2) Können Sie genau beschreiben , wie diese UTF-8.txtDatei erstellt wird?
Scott
Ich schlage vor, einen Hex-Editor zu verwenden und die 3-Zeichen-Sequenz einzugeben. Warum es funktioniert, keine Ahnung. Ich fand diese Lösung heraus, indem ich eine vorhandene UTF-8-CSV-Datei nahm, sie in txt umbenannte, in Excel importierte (wie in anderen Threads vorgeschlagen), sie als CSV mit dem Unicode-Plugin (anderer Thread) speicherte und dann ein binäres Diff ausführte der beiden Dateien. Der einzige Unterschied war die 3-stellige Startsequenz.
Avwtp
Sehen Sie in diesem Thread nach, warum es funktioniert [link] ( stackoverflow.com/questions/6002256/… )
avwtp