Jak używać ReadAllText przy nieznanym kodowaniu plików

Czytam plik za pomocąReadAllText

    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++;
    }

Jeśli spróbuję odczytać niektóre pliki, czasami odzyskuję zły znak (dla ÖÜĘÀ ...). Dane wyjściowe są podobne do „?”, Ponieważ występują problemy z kodowaniem:

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

Jednym z rozwiązań byłoby ustawienie kodowania w ReadAllText, powiedzmy coś takiegoReadAllText(@"c:\\c\\file.txt", Encoding.UTF8) to może rozwiązać problem. Ale co jeśli nadal będę miał „?” jako wyjście? Co jeśli nie znam kodowania pliku? A co, jeśli każdy pojedynczy plik ma inne kodowanie? Jaki byłby najlepszy sposób na zrobienie tego z c #? Dziękuję Ci

questionAnswers(2)

yourAnswerToTheQuestion