Nella nostra applicazione, riceviamo i file di testo ( .txt
, .csv
, etc.) provenienti da fonti diverse. Durante la lettura, questi file a volte contengono immondizia, poiché i file sono stati creati in una tabella codici diversa / sconosciuta.
C'è un modo per rilevare (automaticamente) la tabella codici di un file di testo?
La detectEncodingFromByteOrderMarks
, sul StreamReader
costruttore, lavora per UTF8
e altri file Unicode segnato, ma sto cercando un modo per rilevare le pagine di codice, come ibm850
, windows1252
.
Grazie per le tue risposte, questo è quello che ho fatto.
I file che riceviamo provengono da utenti finali, non hanno la minima idea di codici pagina. Anche i destinatari sono utenti finali, questo è quello che sanno sulle tabelle codici: le tabelle codici esistono e sono fastidiose.
Soluzione:
- Apri il file ricevuto in Blocco note, guarda un pezzo di testo confuso. Se qualcuno si chiama François o qualcosa del genere, con la tua intelligenza umana puoi indovinarlo.
- Ho creato una piccola app che l'utente può utilizzare per aprire il file e inserire un testo che l'utente sa che verrà visualizzato nel file, quando viene utilizzata la tabella codici corretta.
- Scorri tutte le tabelle codici e visualizza quelle che forniscono una soluzione con il testo fornito dall'utente.
- Se viene visualizzata più di una tabella codici, chiedere all'utente di specificare più testo.