Autor Beitrag
reox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37



BeitragVerfasst: Fr 16.10.09 11:57 
Ich habe für eine Datenbank Applikation mit einer Access Datenbank im Hintergrund einen Import Dialog. Ich gebe dem eine csv Datei (Die ich vorher aus Excel exportiert habe) und lese daraus die Daten aus.
Den Stream mach ich auch mit Encoding.ASCII auf, so dass er eigentlich Umlaute lesen sollte...
Wenn jedoch die Daten in der DB liegen sind die Umlaute auf einmal nur noch ? oder so kästchen...
Was kann ich dagegen tun? Es handelt sich auch zT um Dateipfade die dann nimmer gelesen werden können...
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 16.10.09 17:09 
Hallo,

wieso die Daten mit einem Stream gelesen werden, verstehe ich nicht; dafür gibst du zuwenig Informationen. Aber Encoding.ASCII ist mit Sicherheit falsch, denn das bezieht sich nur auf 7-bit-Ascii. Der erste Versuch sollte immer Encoding.Default sein.

Gruß Jürgen
reox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 37



BeitragVerfasst: Mo 19.10.09 19:57 
mhh.. naja ist unter Windows das nicht ASCII? nachdem ich die Hexwerte der Umlaute im Dokument verglichen hatte kam mir das zumindest so vor...

Also nochmal zum prozeder:
Ich hab eine Excel Tabelle die ich nach CSV abspeichere. Nun lese ich Zeile für Zeile aus der CSV und schreibe die Werte in meine Datenbank.
Werd mal Default probieren, wobei wenn ichs ganz weglasse hat das auch noch nix gebracht... selbst wenn ich das Dokument nach UTF8 Konvertuer und dann UTF8 angebe sind die Umlaute immer noch falsch in der DB...
Kanns leider erst am Mittwoch testen hab den Source nicht hier!

EDIT: ok ich habs jetzt mit Drfault probiert und es geht...
Was würde denn der string[] val = File.ReadAllLines(file.Text, Encoding.Default); verwenden wenn ich nichts angebe? wundert mich jetzt das ich default extra setzten muss^^