Hallo LearningDude,
natürlich musst Du einen Reader verenden, der das Encoding Ansi verwendet. Diesen Stream kannst Du dann umkodieren lassen, indem Du das Ganze von einem Stream in einen anderen überführst:
Encoding ANSI = Encoding.GetEncoding(1252);
String utf8String = String.Empty;
using (StreamReader sr = new StreamReader(Dateistring,Encoding.UTF8))
{
byte[] ansiBytes = ANSI.GetBytes(sr.ReadToEnd());
byte[] utf8Bytes = Encoding.Convert(ANSI, Encoding.UTF8, ansiBytes);
utf8String = Encoding.UTF8.GetString(utf8bytes);
}
// hier hast Du den UTF8 String zur VerfügungHinweis: Das ist eine einfach zu verstehende Lösung, aber keine super performante. Diese Lösung umgeht auch die Streaming Technologie (ReadToEnd ist eigentlich ein Verbrechen bei Streams ;-)
Sollte es hier aber um keine großen Texte handeln und sollte das nicht dauerhaft verwendet werden, dann muss man sich jetzt nicht um 100 Millisekunden un 1 Megabyte Speicher rumstreiten, dann halte ich eine einfach zu lesende Lösung für angebrachter.
Solltest Du dennoch an einer performanten Lösung interessiert sein, dann kann ich da sicherlich etwas zaubern.
Grüße
Timo