Catégorie : Logiciels Libres
Affichages : 4287

Il peut arriver qu'on ait besoin de changer l'encodage de fichiers venant d'un autre système d'exploitation (par exemple Windows). J'ai eu ce problème pour importer des requêtes SQL qui avaient été créées sous Windows et que je ne pouvais pas importer dans PMB qui tournait sur un serveur Ubuntu avec Apache.

Pour un seul fichier, le plus simple est d'ouvrir le fichier sous Gedit puis de se servir de la commande "enregistrer sous..." du menu fichier. En bas, on choisit l'encodage UTF-8 et on enregistre. La conversion est faite.

Si l'on a souvent besoin de faire cette conversion, le mieux est de créer un menu contextuel dans son gestionnaire de fichier comme Nautilus ou Nemo. Pour cela, on va créer un script que j'ai trouvé ici : http://askubuntu.com/questions/251584/how-to-batch-convert-legacy-files-to-utf8 (ce script permet de convertir plusieurs fichiers en même temps).

 

Puis de placer ce script dans le dossier de son répertoire personnel /.local/share/nemo/script/ en lui donnant les droits d'exécution. Pour savoir où se trouvent les scripts qui seront exécuter via le menu contextuel de Nemo, il faut aller dans le menu "Édition"-> "Plugins" (raccourci : Alt + P) dans la partie Scripts.

#!/bin/sh
#Nautilus Script to determine encoding of selected file(s) and convert to utf8 if necessary
#
for filename in $@; do
    CHARSET="$(file -bi "$filename"|awk -F "=" '{print $2}')"
    if [ "$CHARSET" != utf-8 ]; then
        iconv -f "$CHARSET" -t utf8 "$filename" -c -o "$filename.utf8" &&
        mv -f "$filename.utf8" "$filename"
    fi  
done