Experimente chardet
do pacote python-chardet
- Experimentei agora em um arquivo que enca
não conseguiu reconhecer ... chardet
detectou um tipo de conjunto de caracteres. (de acordo com o man-page, encaixe significa Extremely Naive Charset Analyze :)
Se você não consegue detectar o tipo, então a re-codificação é inútil, já que o reencoder precisa saber o formato de entrada (veja Detectando conjuntos de caracteres , abaixo)
Você pode tentar abrir o arquivo em outro editor de texto, por exemplo. emacs
, vim
, jedit
, etc.
gedit
tem uma opção Choose / Add / Remove, na caixa de diálogo File Open. Você pode escolher / adicionar conjuntos de caracteres à lista de conjuntos de caracteres (depois de saber o que é). gedit
apenas abre os tipos mostrados nessa lista.
Além disso, pode ser um arquivo do processador de texto. Tente abri-lo com o OpenOffice.org.
Outra opção (desesperada (?) é para o usuário strings
.
strings
imprimirá as seqüências de caracteres imprimíveis em arquivos.
Detectar conjuntos de caracteres está repleto de problemas. Para as muitas linguagens baseadas em scripts latinos (o que parece ser seu), existem muitas variações de conjuntos de caracteres. O único tema comum para esses conjuntos de caracteres é o conjunto de caracteres ASCII de 7 bits da linha de base que consiste em 128 possibilidades para hexadecimal \ x00 a \ x7F.
Qualquer um dos muitos conjuntos de caracteres de byte único que utiliza o 8º bit (mais 128 letras) usa este intervalo superior de tantas maneiras diferentes quanto os charset. .
A menos que você saiba qual é a codificação, muitas vezes é um jogo de probabilidade estatística detectá-la (engenharia reversa), porque o programa de detecção não tem idéia do que letra está olhando; só vê valores de byte. Quando nenhuma diferença única de definição é detectada (não é uma tarefa simples), o único recurso é escolher o conjunto de caracteres mais usado que combina.
O resultado é que mesmo que o arquivo contenha um charset A completamente válido, ele pode parecer tão válido para um programa de detecção quanto o charset B ... Esta é a razão pela qual um precisa saber o codificador de caracteres! - especialmente para conjuntos de caracteres que usam apenas um byte.
O conjunto de caracteres multibyte tem uma impressão digital muito mais óbvia , mas mesmo assim, se o conjunto de amostras não for grande o suficiente, é novamente um jogo de adivinhação ...