Sur mon système de fichiers (Windows 7), j'ai des fichiers texte (ce sont des fichiers de script SQL, si cela compte).
Lorsqu’il est ouvert avec Notepad ++ , dans le menu "Encodage", il est signalé que certains d’entre eux possèdent un encodage de "UCS-2 Little Endian" et d’autres de "UTF-8 sans BOM".
Quelle est la différence ici? Ils semblent tous être des scripts parfaitement valides. Comment savoir quels sont les encodages du fichier sans Notepad ++?
enca
et chardet
pour les systèmes POSIX.
iconv
en particulier est utile à cet effet. Essentiellement, vous parcourez les chaînes / caractères de caractères corrompus à travers différents codages pour voir celui qui fonctionne. Vous gagnez, quand les personnages ne sont plus corrompus. J'aimerais répondre ici, avec un exemple de programmation. Mais c'est malheureusement une question protégée.
chardet
ou chardetect
n'est pas disponible sur votre système, vous pouvez installer le paquet via votre gestionnaire de paquets (par exemple apt search chardet
- sous Ubuntu / debian, le paquet est généralement appelé python-chardet
ou python3-chardet
) ou via pip avec pip install chardet
(ou pip install cchardet
pour la version plus rapide de c-optimisée).