En mi sistema de archivos (Windows 7) tengo algunos archivos de texto (estos son archivos de script SQL, si eso es importante).
Cuando se abre con Notepad ++ , en el menú "Codificación" se informa que algunos de ellos tienen una codificación de "UCS-2 Little Endian" y algunos de "UTF-8 sin BOM".
¿Cual es la diferencia aquí? Todos parecen ser guiones perfectamente válidos. ¿Cómo podría saber qué codificaciones tiene el archivo sin Notepad ++?
encay chardetpara sistemas POSIX.
iconven particular es útil para este propósito. Esencialmente, itera las cadenas de caracteres / texto corruptos a través de diferentes codificaciones para ver cuál funciona. Ganas cuando los personajes ya no están corrompidos. Me encantaría responder aquí, con un ejemplo programático. Pero desafortunadamente es una pregunta protegida.
chardeto chardetectno está disponible en su sistema, puede instalar el paquete a través de su administrador de paquetes (por ejemplo apt search chardet, en ubuntu / debian, generalmente se llama python-chardeto python3-chardet) o mediante pip with pip install chardet(o pip install cchardetpara la versión c-optimizada más rápida).