423 votes

Comment trouver le codage d'un fichier sous Unix via un ou plusieurs scripts

J'ai besoin de trouver le codage de tous les fichiers placés dans un répertoire. Est-il possible de trouver le codage utilisé?

La commande file n'est pas en mesure de le faire.

Le codage qui m'intéresse est: ISO-8859-1. Si l'encodage est autre chose, je veux déplacer le fichier dans un autre répertoire.

561voto

scraimer Points 7000

On dirait que vous cherchez enca . Il peut deviner et même convertir entre les encodages. Il suffit de regarder la page de manuel .

Sinon, utilisez file -i . Cela produira des informations de type MIME pour le fichier, qui incluront également le codage du jeu de caractères. J'ai aussi trouvé une page de manuel pour cela :)

114voto

madu Points 71
 file -bi <file name>
 

Si vous aimez faire cela pour un tas de fichiers

 for f in `find | egrep -v Eliminate`; do echo "$f" ' -- ' `file -bi "$f"` ; done
 

7voto

Norbert Hartl Points 4509

Il est vraiment difficile de déterminer si c'est de l'iso-8859-1. Si vous avez un texte avec uniquement des caractères de 7 bits, qui pourrait également être iso-8859-1, mais vous ne savez pas. Si vous avez des 8 bits de caractères, puis la région supérieure personnages existent dans le but d'encodages. À cet effet, vous devez utiliser un dictionnaire pour mieux deviner de quel mot il est, et de déterminer à partir de là, de quelle lettre il doit être. Enfin, si vous détectez qu'il pourrait être en utf-8 que vous êtes sûr qu'il n'est pas iso-8859-1

L'encodage est l'une des choses les plus difficiles à faire parce que vous ne savez jamais si rien n'est de vous dire

6voto

fccoelho Points 1546

Avec Python, vous pouvez utiliser le module chardet: http://chardet.feedparser.org/

2voto

evgeny9 Points 542

Si vous parlez de fichiers XML (ISO-8859-1), la déclaration XML à l'intérieur spécifie le codage: <?xml version="1.0" encoding="ISO-8859-1" ?>
Ainsi, vous pouvez utiliser des expressions régulières (par exemple avec perl ) pour vérifier chaque fichier pour une telle spécification.
Plus d'informations peuvent être trouvées ici: Comment déterminer le codage de fichier texte .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X