Est-ce que quelqu'un connaît une application Windows qui peut parcourir un répertoire et vérifier quels scripts sont/ne sont pas codés comme charset spécifié (UTF-8 dans ce cas)? Je pourrais le faire manuellement, mais cela pourrait prendre un certain temps et est assez sujet aux erreurs! UTF-8 n'est pas un jeu de caractères, c'est un encodage pour les caractères Unicode.La vérification de tous les fichiers est encodée en UTF-8
Répondre
Et, comme ce n'est pas lié à la programmation, je le cède la place au super-utilisateur.
Si vous ne voulez écrire un programme pour détecter ces séquences, il est assez facile:
Illegal UTF-8 initial sequences
UTF-8 Sequence Reason for Illegality
10xxxxxx illegal as initial byte of character (80..BF)
1100000x illegal, overlong (C0 80..BF)
11100000 100xxxxx illegal, overlong (E0 80..9F)
11110000 1000xxxx illegal, overlong (F0 80..8F)
11111000 10000xxx illegal, overlong (F8 80..87)
11111100 100000xx illegal, overlong (FC 80..83)
1111111x illegal; prohibited by spec
Ensuite, à condition que le premier octet est légal, rappelez-vous juste que le nombre d'octets formant un point de code peut être obtenu en comptant le nombre de bits 1
avant le premier bit 0
.
Par exemple, 11110xxx
est le début d'une séquence de 4 octets, donc vous devriez passer de 4 octets une fois que vous avez établi sa légalité.
L'autre chose à faire est de s'assurer que tous les octets de continuation commencent par 10
.
Je ne sais pas si c'est ce que vous cherchez, mais j'utilise un shell de commande for-loop et vider les premiers octets de chaque fichier en utilisant mon utilitaire hdump
, qui affiche les octets du fichier sous forme hexadécimale. Je recherche ensuite la signature UTF-8 de 3 octets (Byte Order Mark) au début de chaque fichier.
Mon hdump
utilitaire est disponible à l'adresse: http://david.tribble.com/programs.html
Tous les fichiers UTF-8 n'ont pas de nomenclature. –
Quel genre de scripts? Sauf si un script a une nomenclature, il peut être difficile de dire si c'est UTF-8 ou ASCII. – brianegge
Si un fichier contient uniquement des caractères ASCII 7 bits (c'est-à-dire uniquement [0x00-0x7F]), il s'agit également de UTF-8. –
@brianegge: oui, je viens de le découvrir à la dure! – Spoonface