Im lettura di un file con ReadAllTextCome utilizzare ReadAllText quando la codifica di file sconosciuto
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++;
}
Se provo a leggere alcuni file ottengo a volte il carattere errato posteriore (per ÖÜÄÀ ...). L'uscita è come, la sua perché c'è qualche problema con la codifica '?':
output: 0 TEST
output: 1 A??O?
Una soluzione potrebbe essere quella di impostare la codifica in ReadAllText, consente di dire una cosa del genere ReadAllText(@"c:\\c\\file.txt", Encoding.UTF8)
che potrebbe risolvere il problema. Ma cosa succede se otterrei ancora '?' come uscita? Cosa succede se non conosco la codifica del file? E se ogni singolo file avesse una codifica diversa? Quale sarebbe il modo migliore per farlo con C#? Grazie
Hai bisogno di sapere che cos'è la codifica. E non esiste un modo affidabile al 100% per scoprirlo basandosi esclusivamente sul contenuto del file. –
Si prega di fare riferimento a questo post http://stackoverflow.com/questions/2239968/c-sharp-file-readalltext-doing-weird-things – Dhaval