Ceci est une ancienne révision du document !


Comment résoudre les problèmes du type "Invalid Encoding" (codage non valide) ?

Le problème d'invalid encoding ou (codage non valide) dans Ubuntu est dû à l'utilisation par défaut de UTF-8 pour le codage des partitions. Malheureusement, ce format est encore peu utilisé et la plupart des anciennes partitions (windows ou Linux) sont mal gérées par défaut.

Beaucoup d'info sur ce problème existent, mais il faut les trouver ! La situation peut donc s'améliorer en suivant les conseils pointés par cette page.

Comme expliqué sur la page d'installation des partitions windows, il faut ajouter ,iocharset=utf8,codepage=850 aux paramètres des partitions FAT32.

Si vous avez une ancienne partition Linux qui n'utilisait pas UTF-8, utilisez l'outil convmv pour transformer les accents invalides en UTF-8.

Vous trouverez également sur cette page une note vous expliquant comment utiliser convmv pour corriger des noms de fichiers écrits par Windows sur une partitions ext2 ou ext3 avec le pilote Ext2IFS ou Ext2fsd.

Éventuellement cette discussion du forum ubuntu-FR parle des problèmes de nom lors de téléchargement de fichiers.

Astuce pour trouver les fichiers à problème :

  1. Listez tous les fichiers et gardez le résultat dans un fichier texte avec la commande
    ls -R <chemin> > <fichier_texte>
  2. Ouvrez le fichier texte avec un éditeur : ce dernier lira alors le fichier avec l'ancien encodage. Cherchez y alors les é,è,à,… : ça vous aidera à trouver les fichiers à convertir.

Ensuite utilisez l'outil convmv avec les options désirées. Habituellement :

 convmv -f iso-8859-15 -t utf8 -r --nosmart <fichier_a_convertir>

puis avec l'option supplémentaire

--notest

si vous voulez faire la conversion.

Exemples:

  1. Fichier transféré d'une partition Windows sur une partition UTF-8 ext3:
    convmv -f cp1252 -t utf-8 -r --notest <fichier_a_convertir>
  2. Fichier extrait d'une archive:
    convmv -f iso-8859-1 -t utf-8 -r --notest <fichier_a_convertir>

Si vos fichiers affichés sur des crdoms apparaissent avec un problème de type invalid encoding, alors il faudra modifier les paramètres du fichier /etc/fstab et ajouter UTF8 en option de lecture des lecteurs, ce qui peut donner par exemple:

/dev/hdc        /media/cdrom0   udf,iso9660 unhide,ro,user,noauto,utf8     0       0
/dev/hdd        /media/cdrom1   udf,iso9660 unhide,ro,user,noauto,utf8     0       0

Normalement, après redémarrage de l'ordinateur, il ne devrait plus y avoir de problèmes de type invalid_encoding avec les cdroms.

Pour ceux qui montent des images ISO avec la commande mount, voici la commande qui a fonctionné pour moi:

sudo mount -o loop,iocharset=utf8 -t iso9660 imagesource.iso /destination

Ceux qui sont amenés à échanger quelques fichiers de manière épisodique ont peut-être été confronté au fait d'avoir simultanément sur une même clé usb des fichiers en utf8 et d'autres en iso. Le problème peut-être partiellement résolu en sélectionnant les fichiers incriminés et en utilisant un script pour nautilus:

#!/bin/sh
#pour convertir le nom du fichier de iso-8859-1 à utf8

for filename
do
   newfilename=`echo $filename | iconv -f iso-8859-1 -t utf-8`;
    mv "$filename" "$newfilename";
done

Il faut créer ce fichier avec le nom qui vous plaira et le placez dans le répertoire .gnome2/nautilus-scripts/

Le logiciel de récupération de fichiers Scalpel peut parfois donner un résultat sous la forme de "fichiers" dont le titre ressemble à peu près à ça :

?-0-0 (codage non valide)

Il s'agit en réalité de dossiers qui ne sont utilisables en tant que tel que par le super-utilisateur. Il vous faut donc démarrer votre explorateur de fichier en mode super-utilisateur. Par exemple, dans le cas de Nautilus :

sudo nautilus
  • tutoriel/comment_resoudre_les_problemes_invalid_encoding.1392626665.txt.gz
  • Dernière modification: Le 17/02/2014, 09:44
  • par Karottes