Chenc, changer l'encodage d'un fichier en un clin d'oeil

Les notions d'encodage sont mal connues de la plupart des développeurs et donnent souvent lieu à des problèmes pas toujours évidents à corriger.

JE n'ai ni le temps, ni les compétances, ni l'envie de révolutionner le domaine, mais voici une petite contribution qui pourrait vous être utile: un petit utilitaire tout simple en ligne de commande pour windows servant à déterminer l'encodage de caractères utilisé par un fichier et de le changer si besoin.

J'ai conçu cet utilitaire à la suite d'un problème courant et très simple qui m'est arrivé, et je n'avais pas de moyen rapide pour y remédier.

Je voulais convertir, si possible automatiquement, une série de pages HTML statiques de ISO-8859-1 en UTF-8. Pour compliquer la tâche, j'avais déjà modifié et converti certains fichiers au passage, je ne rappelais plus exactement lesquels, et pour faire encore mieux c'était avec le bloc-notes par défaut de windows, qui a la magnifique habitude grotesque, dépassée et inutile d'ajouter un BOM au début de tous les fichiers qu'il encode en UTF-8. Le plus gros problème était alors de supprimer automatiquement le BOM des fichiers déjà convertis, et de convertir les autres.

Certains vont me dire que j'aurais pu utiliser iconv, il en existe une version pour windows. Mais chenc fait deux choses qu'iconv ne fait pas :

Fonctionnalités

Pas de quoi casser trois pattes à un canard, cet utilitaire fait peu de choses mais essaie de les faire bien :

Voici l'aide de la commande, celle qui s'affiche lorsqu'on ne fournit aucun argument :

 
chenc - change encoding
chenc [infile]
chenc [infile] [outenc] {outfile}
chenc {-i [infile]|stdin} {-o [outfile]|stdout} {-s [sourceEncoding]} {-t {targetEncoding]}
chenc -l

Options :
-i Input file
-l List supported encodings
-s Source encoding (encoding of input file)
-t Target encoding (desired encoding in output file)
-o Output file

If no output file and encodings are given, chenc just try to guess the encoding of the input file and returns its guess without further action.
If no source encoding is given, chenc try to guess the encoding of the input file automatically
If no output file is given, chenc overwrites the input file.

La version exécutable de ce petit utilitaire et son code source en accès libre sont disponibles ci-dessous.

En espérant que ça pourra vous servir !

Téléchargement

Binaire: Télécharger chenc.exe, 39 Ko (1275 téléchargements)
Source: Télécharger chenc.c, 9 Ko (1944 téléchargements)

Aucune installation n'est nécessaire, il suffit de mettre l'exécutable dans le path pour qu'il fonctionne.

Commentaires

1. abdellahzineddin@gmail.com, 14.06.2014 14:30:45

cher ami, je ne suis qu'un utilisateur symple, mais, si vous me le permettez, j'ai une petite question: je ne sais pas où je peux mettre cet utilitaire? c'est-à dire: chenc.c.
merci d'avance.

2. QuentinC, 17.06.2014 06:17:33

Chenc.c c'est le code source, tu n'en as pas besoin si tu ne souhaites pas modifier le programme.

3. rcol69, 24.09.2015 12:03:07

Votre utilitaire m'a rendu un grand service aujourd'hui ! C'est vrai que c'est toujours chiant de devoir changer l'encodage de son site... Merci à vous

4. eelseb, 06.08.2016 16:21:30

Merci bcq, très pratique

5. Bucket, 13.02.2017 10:57:37

Bonjour,
en ce qui me conserne, peu importe le fichier testé votre programme detecte "windows-1254".
J'ai testé avec des fichiers encodé en UTF8 avec et sans BOM ainsi qu'avec des fichiers encodé en ANSI.
Une idée d'où pourrait venir mon probleme ?
Merci d'avance

6. spiderman, 11.04.2017 15:59:39

Super pratique. Mieux que iconv. Merci beaucoup !

7. raphaël, 11.08.2017 14:04:33

Génial, merci beaucoup !

Commenter