Ich entwickle einen Teil einer Anwendung, die für den Export einiger Daten in CSV-Dateien verantwortlich ist. Die Anwendung verwendet immer UTF-8, weil sie auf allen Ebenen mehrsprachig ist. Aber das Öffnen solcher CSV-Dateien (die z. B. diakritische, kyrillische oder griechische Buchstaben enthalten) in Excel führt nicht zu den erwarteten Ergebnissen und zeigt etwas wie Г"/Г¤, Г-/Г¶
. Und ich weiß nicht, wie ich Excel dazu bringen kann, zu verstehen, dass die geöffnete CSV-Datei in UTF-8 kodiert ist. Ich habe auch versucht, UTF-8 BOM EF BB BF
anzugeben, aber Excel ignoriert das.
Gibt es einen Workaround?
P.S. Welche Tools können sich möglicherweise so verhalten wie Excel?
UPDATE
Ich muss zugeben, dass ich die Community mit der Formulierung der Frage verwirrt habe. Als ich diese Frage stellte, fragte ich nach einer Möglichkeit, eine UTF-8 CSV-Datei in Excel zu öffnen, ohne Probleme für einen Benutzer, in einer fließenden und transparenten Weise. Ich habe jedoch eine falsche Formulierung verwendet und nach einer automatischen Lösung gefragt. Das ist sehr verwirrend und kollidiert mit der Automatisierung von VBA-Makros. Es gibt zwei Antworten auf diese Fragen, die ich am meisten schätze: die allererste Antwort von Alex https://stackoverflow.com/a/6002338/166589, und ich habe diese Antwort akzeptiert; und die zweite von Mark https://stackoverflow.com/a/6488070/166589, die etwas später erschienen ist. Vom Standpunkt der Benutzerfreundlichkeit aus gesehen, schien Excel eine gute benutzerfreundliche UTF-8 CSV-Unterstützung zu fehlen, daher halte ich beide Antworten für richtig, und ich habe Alex's Antwort zuerst akzeptiert, weil sie wirklich aussagte, dass Excel nicht in der Lage war, dies transparent zu tun. Das ist es, was ich hier mit automatisch verwechselt habe. Mark's Antwort propagiert einen komplizierteren Weg für fortgeschrittene Benutzer, um das erwartete Ergebnis zu erreichen. Beide Antworten sind gut, aber die von Alex passt ein bisschen besser zu meiner nicht klar spezifizierten Frage.
UPDATE 2
Fünf Monate nach der letzten Bearbeitung habe ich bemerkt, dass die Antwort von Alex aus irgendeinem Grund verschwunden ist. Ich hoffe wirklich, dass es sich nicht um ein technisches Problem handelt und dass es keine weitere Diskussion darüber gibt, welche Antwort nun besser ist. Also akzeptiere ich Mark's Antwort als die beste.
Alex hat recht, aber da Sie nach csv exportieren müssen, können Sie den Benutzern diesen Hinweis geben, wenn sie die csv-Dateien öffnen:
Auf diese Weise sollten die Sonderzeichen korrekt angezeigt werden.
Wir haben diese Abhilfe genutzt:
Speichern Sie zunächst die Excel-Tabelle als Unicode-Text. Öffnen Sie die TXT-Datei mit dem Internet-Explorer und klicken Sie auf "Speichern unter" TXT-Kodierung - wählen Sie die entsprechende Kodierung, z. B. für Win Kyrillisch 1251