Unterschiede bei Ascii bzw Unicode-Encoding mit WriteAllText

23/03/2009 - 08:38 von Thomas Eisenmann | Report spam
Hallo alle miteinander,

für eine mit VB 2008 geschrieben Anwendung möchte ich Texte in eine Datei
schreiben.

„Peter;Text1;Text2;Text3;Text4“
„Ines;Text1;Text2;Text3;Text4“
„Klaus;Text1;Text2;Text3;Text4“

Zum Schreiben benutze ich den Befehl: „FileSystem.WriteAllText“, als
Trennzeichen das Semikolon, und als Dateierweiterung das „.csv“. Damit möchte
ich die Möglichkeit schaffen, die Datei mit Excel zu öffnen und die Texte zu
editieren. Bei meinen Tests sind mir folgende Unterschiede aufgefallen.

[1] Benutze ich Unicode als Encoding -Parameter für den Befehl:
„WriteAllText“, dann kann ich auch chinesische Schriftzeichen in die
csv-Datei schreiben. Öffnet man nun die csv-Datei in Excel, editiert die
Texte und drückt auf „speichern“, wird das Semikolon als Trennzeichen ohne
Rückfrage entfernt und die Struktur geht mir verloren.

[1] Benutze ich Acsii als Encoding-Parameter für den Befehl: „WriteAllText“,
werden die chinesische Schriftzeichen als Fragezeichen in der csv-Datei
dargestellt. Öffnet man nun diese csv-Datei in Excel, editiert die Texte und
drück auf „speichern“, bleibt das Semikolon ohne Rückfrage als Trennzeichen
erhalten und damit auch meine Struktur.

Ich möchte aber beides haben. Zum Einen, die korrekt Anzeige von chinesische
Schriftzeichen in der csv-Datei, und als Zweites, der Erhalt des Semikolons
als Trennzeichen beim drücken auf das Button: „speichern“ in Excel.

Hat einer von euch eine Idee, ohne bin ich „Out of Range“?

Grüße Thomas
 

Lesen sie die antworten

#1 Gerold Mittelstädt
23/03/2009 - 08:55 | Warnen spam
Hallo Thomas!

Thomas Eisenmann schrieb:
für eine mit VB 2008 geschrieben Anwendung möchte ich Texte in eine Datei
schreiben.

„Peter;Text1;Text2;Text3;Text4“
„Ines;Text1;Text2;Text3;Text4“
„Klaus;Text1;Text2;Text3;Text4“

Zum Schreiben benutze ich den Befehl: „FileSystem.WriteAllText“, als
Trennzeichen das Semikolon, und als Dateierweiterung das „.csv“. Damit möchte
ich die Möglichkeit schaffen, die Datei mit Excel zu öffnen und die Texte zu
editieren. Bei meinen Tests sind mir folgende Unterschiede aufgefallen.

[1] Benutze ich Unicode als Encoding -Parameter für den Befehl:
„WriteAllText“, dann kann ich auch chinesische Schriftzeichen in die
csv-Datei schreiben.



Unicode unterstützt so ziemlich alle Zeichen.

Öffnet man nun die csv-Datei in Excel, editiert die
Texte und drückt auf „speichern“, wird das Semikolon als Trennzeichen ohne
Rückfrage entfernt und die Struktur geht mir verloren.



Das klingt mir eher nach Excel-Problem.
-> microsoft.public.de.excel ("Warum gehen CSV-Trennzeichen beim
Speichern in Unicode verloren?")

[1] Benutze ich Acsii als Encoding-Parameter für den Befehl: „WriteAllText“,
werden die chinesische Schriftzeichen als Fragezeichen in der csv-Datei
dargestellt.



Wenig überraschend. In Ascii gibt es ausschließlich:
␣!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~

Öffnet man nun diese csv-Datei in Excel, editiert die Texte und
drück auf „speichern“, bleibt das Semikolon ohne Rückfrage als Trennzeichen
erhalten und damit auch meine Struktur.

Ich möchte aber beides haben. Zum Einen, die korrekt Anzeige von chinesische
Schriftzeichen in der csv-Datei, und als Zweites, der Erhalt des Semikolons
als Trennzeichen beim drücken auf das Button: „speichern“ in Excel.



Da brauchst Du einen Zeichensatz, bei dem Chinesisch mit drin ist.

Hat einer von euch eine Idee, ohne bin ich „Out of Range“?



Probier mal nach UTF-16 Little Endian zu kodieren und die Werte durch
Tabs zu trennen.

Ist aber definitiv ein Excel-Problem.

Viele Grüße!

Ähnliche fragen