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
                        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
                        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.