Hallo Vegeto,
wie genau schreibst du denn die CSV-Datei?
Für das Schreiben von Komma statt Punkt ist die Klasse
CultureInfo zuständig (hat also nichts mit dem
Encoding zu tun).
Viele .NET-Methoden haben einen
IFormatProvider als Parameter (von dem dann
CultureInfo abgeleitet ist), so daß du dann z.B. die deutsche "Kultur" übergeben kannst:
C#-Quelltext
1: 2: 3:
| CultureInfo german = new CultureInfo("de-DE"); decimal value = 1.23; string valueWithComma = value.ToString(german); |
Du kannst aber auch den gesamten Thread auf eine Kultur umstellen (dann brauchst du nicht den Parameter jedesmal setzen):
C#-Quelltext
1: 2: 3:
| Thread.CurrentThread.CurrentCulture = german; Thread.CurrentThread.CurrentUICulture = german; |
Standardmäßig wird beim Starten eines .NET-Programms die aktuelle eingestellte Kultur (aus den Windows Systemeinstellungen) übernommen, so daß auf einem deutschen Windows eigentlich schon ein Komma erzeugt werden sollte.