esta no google code. Recompilei o source, e nesse post eu disponibilizo tanto o source como o compilado para download.Essa biblioteca se propoe a analisar n bytes de um arquivo de texto e fazer uma heuristica para descobrir que tipo de encoding ele usa, baseando-se em uma estatistica dos caracteres encontrados.Instale o tortoise SVN, clique com o direito na area de trabalho, de o comando tortoise checkout e coloque o endereco http://chardetsharp.googlecode.com/svn/trunk/ conforme a figura abaixo.Abra o sln com o visual studio e recompile o mesmo. Agora voce pode importar a dll gerada no seu projeto.Tambem encontrei a classe EncodingTools no site do code project, que fazia uso de um outro algoritmo para identificar o encoding. Essa classe, podemos dizer, e mais "caseira".Encontrei uma classe chamada TextFileEncodingDetector no git que nao e muito boa, pois se baseia apenas na deteccao do BOM (byte order mark) coisa que a Unicode ja descontinuou. Mais sobre Unicode e BOM.Por ultimo eu encontrei uma biblioteca chamada UDE que na minha opiniao foi a mais completa e profissional. Tanto a chardet como a UDE sao ports do Mozilla Universal Character Detector no entanto a UDE esta mais atual. E a biblioteca usada pela mozilla para deteccao de caracteres. A UDE tambem deve ser baixada com o SVN no endereco e recompilada. No arquivo ao final desse post voce pode ver todoPrecisava testar essas tres bibliotecas tanto com arquivos de teste como com meus arquivos de producao para saber qual trabalhava melhor. Para testar em casos extremos usei tanto arquivos muito pequenos, com caracteres especiais mas sem caracteres suficientes para caracterizar um determinado encoding / linguagem, e testei com arquivos grandes todos em ANSI e que tinham um unico caractere em utf-8.Eu criei uma classe estatica com uma unica funcao para facilitar a transformacao de um arquivo em um vetor de bytes. Como meus arquivos sao pequenos nao fiz nenhuma consideracao quanto a performance ou quanto a limitar o tamanho do vetor de bytes. Se voce for importar arquivos maiores do que 10mb seria prudente levar isso em consideracao.using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;namespace EncodeDetector{ public static class TextUtils { public static byte[] FileToBytes(string filename) { using(FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read)) { byte[] queEuGosto = new byte[fs.Length]; fs.Read(queEuGosto, 0, (int)fs.Length); return queEuGosto; } } }}Tambem criei uma classe chamada VtrEncodingDetector como um wrapper para a biblioteca UDE, com dois objetivos: primeiro, se for detectado que o arquivo tem um BOM, entao eu posso identificar o tipo do arquivo lendo apenas 3 ou 4 bytes em vez do arquivo todo. (isso nao e confiavel, pois o arquivo pode ter uma BOM marcando UTF-8 e estar todo em ANSI). Outro motivo e que eu posso trocar a implementacao interna da minha biblioteca assim que eu encontre uma biblioteca de deteccao de charset que eu goste mais.Abaixo o codigo da classe.using System;using System.Collections.Generic;using System.Linq;using System.Text;using Mozilla.CharDet;using Ude;namespace EncodeDetector{ public static class VtrEncodingDetector { /// /// Retorna encoding do streaming. (UTF7; UTF8; Unicode) /// /// Bytes do Arquivo /// Encoding Type public static Encoding GetEncodingFile(byte[] bytes) { if (bytes !=