Em nosso aplicativo, recebemos arquivos de texto ( .txt
,.csv
, etc.) a partir de diversas fontes. Ao ler, esses arquivos às vezes contêm lixo, porque os arquivos foram criados em uma página de código diferente / desconhecida.
Existe uma maneira de (automaticamente) detectar a página de código de um arquivo de texto?
A detectEncodingFromByteOrderMarks
, no StreamReader
construtor, trabalha para UTF8
e outros arquivos unicode marcada, mas eu estou procurando uma maneira de detectar páginas de código, como ibm850
, windows1252
.
Obrigado por suas respostas, foi o que eu fiz.
Os arquivos que recebemos são de usuários finais, eles não têm idéia sobre páginas de código. Os receptores também são usuários finais, a essa altura é o que sabem sobre páginas de código: as páginas de código existem e são irritantes.
Solução:
- Abra o arquivo recebido no bloco de notas, observe um pedaço de texto ilegível. Se alguém se chama François ou algo assim, com sua inteligência humana, você pode adivinhar.
- Criei um aplicativo pequeno que o usuário pode usar para abrir o arquivo e insira um texto que ele saiba que aparecerá no arquivo, quando a página de código correta for usada.
- Passe por todas as páginas de código e exiba as que fornecem uma solução com o texto fornecido pelo usuário.
- Se aparecer mais de uma página de código, peça ao usuário para especificar mais texto.