GNU/Linux >> Tutoriels Linux >  >> Linux

Comment détecter automatiquement l'encodage d'un fichier texte ?

Essayez le module chardet Python, qui est disponible sur PyPI :

pip install chardet

Ensuite, exécutez chardetect myfile.txt .

Chardet est basé sur le code de détection utilisé par Mozilla, il devrait donc donner des résultats raisonnables, à condition que le texte d'entrée soit suffisamment long pour une analyse statistique. Lisez la documentation du projet.

Comme mentionné dans les commentaires, il est assez lent, mais certaines distributions fournissent également la version C++ originale comme @Xavier l'a trouvé dans https://superuser.com/a/609056. Il existe aussi une version Java quelque part.


J'utiliserais cette commande simple :

encoding=$(file -bi myfile.txt)

Ou si vous voulez juste le jeu de caractères réel (comme utf-8 ):

encoding=$(file -b --mime-encoding myfile.txt)

Sur Linux basé sur Debian, le paquet uchardet (Debian/Ubuntu) fournit un outil de ligne de commande. Voir ci-dessous la description du package :

 universal charset detection library - cli utility
 .
 uchardet is a C language binding of the original C++ implementation
 of the universal charset detection library by Mozilla.
 .
 uchardet is a encoding detector library, which takes a sequence of
 bytes in an unknown character encoding without any additional
 information, and attempts to determine the encoding of the text.
 .
 The original code of universalchardet is available at
 http://lxr.mozilla.org/seamonkey/source/extensions/universalchardet
 .
 Techniques used by universalchardet are described at
 http://www.mozilla.org/projects/intl/UniversalCharsetDetection.html

Linux
  1. Comment ajouter facilement du texte à la fin du fichier sous Linux

  2. Comment supprimer les lignes en double dans un fichier texte ?

  3. Comment diriger un appel de sous-processus vers un fichier texte ?

  4. Comment insérer un texte au début d'un fichier ?

  5. Comment éditer un fichier texte dans mon terminal

Comment comparer et fusionner des fichiers texte sous Linux

Comment créer des répertoires à partir d'un fichier texte sous Linux

Comment enregistrer la sortie de la commande Linux dans une image ou un fichier texte

Comment verrouiller un fichier texte sous Linux à l'aide de la commande flock

Comment imprimer des lignes dupliquées dans un fichier texte sous Linux

Comment ajouter du texte au début du fichier sous Linux