Verwendung von ReadAllText bei unbekannter Dateicodierung

Ich lese eine Datei mitReadAllText

    String[] values = File.ReadAllText(@"c:\\c\\file.txt").Split(';');

    int i = 0;

    foreach (String s in values)
    {
        System.Console.WriteLine("output: {0} {1} ", i, s);
        i++;
    }

Wenn ich versuche, einige Dateien zu lesen, erhalte ich manchmal das falsche Zeichen zurück (für ÖÜÄÀ ...). Die Ausgabe ist wie '?', Da es Probleme mit der Codierung gibt:

output: 0 TEST
output: 1 A??O?

Eine Lösung wäre, die Kodierung in ReadAllText festzulegen, sagen wir so etwas wieReadAllText(@"c:\\c\\file.txt", Encoding.UTF8) das könnte das Problem beheben. Aber was wäre, wenn ich immer noch '?' als Ausgabe? Was ist, wenn ich die Kodierung der Datei nicht kenne? Und wenn jede einzelne Datei eine andere Kodierung hat? Was wäre der beste Weg, um es mit c # zu tun? Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage