No meu sistema de arquivos (Windows 7), tenho alguns arquivos de texto (esses são arquivos de script SQL, se isso importa).
Quando abertos com o Notepad ++ , no menu "Codificação", alguns deles têm uma codificação de "UCS-2 Little Endian" e alguns de "UTF-8 sem BOM".
Qual é a diferença aqui? Todos eles parecem ser scripts perfeitamente válidos. Como eu poderia saber quais codificações o arquivo possui sem o Notepad ++?
enca
e chardet
para sistemas POSIX.
iconv
em particular, é útil para esse fim. Essencialmente, você itera as seqüências de caracteres / texto corrompidos por diferentes codificações para ver qual delas funciona. Você ganha quando os personagens não estão mais corrompidos. Eu adoraria responder aqui, com um exemplo programático. Infelizmente, é uma questão protegida.
chardet
ou chardetect
não estiver disponível no seu sistema, você poderá instalar o pacote através do seu gerenciador de pacotes (por exemplo apt search chardet
- no ubuntu / debian o pacote geralmente é chamado python-chardet
ou python3-chardet
) ou via pip com pip install chardet
(ou pip install cchardet
para a versão mais rápida e otimizada para c).