AZ Tools

Detector de Codificação de Arquivos

Arquivo

Quando um arquivo aparece com mojibake (괆쒋쀎), o primeiro passo é descobrir qual codificação realmente é. Este detector lê os bytes do arquivo no seu navegador (nunca enviado) e roda as heurísticas padrão: sequências de bytes BOM primeiro (FF FE para UTF-16 LE, EF BB BF para UTF-8 BOM, etc.), depois densidade de bytes null (UTF-16 tem nulls a cada outro byte para conteúdo ASCII), depois verificação de validade UTF-8 (a maioria das sequências multi-byte são inválidas em Latin-1, então UTF-8 válido = muito provavelmente UTF-8). Retorna a codificação detectada, porcentagem de confiança, bytes BOM se presentes, e visão lado a lado hex/texto para verificação visual do decode.

Como usar

  1. Solte ou escolha qualquer arquivo de texto. A detecção roda no seu navegador — o arquivo nunca deixa a página.
  2. Verifique o painel BOM primeiro: um BOM significa que a codificação é essencialmente certa. Sem BOM significa detecção heurística.
  3. Compare a visão hex com a pré-visualização de texto decodificado. Se caracteres não-ASCII parecem corretos, a detecção está correta.

Perguntas frequentes

Por que não há uma biblioteca 'detect' como chardet?
Navegadores não vêm com chardet, e importar uma biblioteca grande de detecção de codificação (o port JS do `CharsetDetector` da ICU é ~200KB) para alguns casos comuns é exagero. Esta ferramenta cobre o caso 95%: BOMs, só-ASCII, UTF-8 válido, e UTF-16 por padrão de bytes null. Para codificações asiáticas exóticas (Shift_JIS, GB2312, EUC-KR) sem BOM, você precisará de chardet — mas esta ferramenta dirá 'não é UTF-8' para você saber procurar em outro lugar.
Qual o lance dos BOMs?
Byte Order Marks são prefixos de 2-4 bytes que marcam explicitamente a codificação. UTF-8 BOM é `EF BB BF` (tecnicamente desnecessário, controverso — Microsoft adiciona, ferramentas Unix geralmente removem). BOMs UTF-16/32 (`FF FE` etc.) são úteis porque também sinalizam endianness. Se um arquivo tem um BOM, confie nele absolutamente.

Ferramentas relacionadas