Problèmes de locale dans Ubuntu

28 juin 2008 – 17:34

Depuis que j’ai réinstallé Ubuntu Hardy sur mon laptop, j’ai été embêté par plusieurs problèmes liés aux locales. En effet, je suis en dual boot avec Windows, dont l’encodage est l’ISO8859-15, alors l’encodage par défaut d’Ubuntu est l’UTF-8. Cela pose donc des problèmes en ce qui concerne l’encodage des fichiers et de leurs noms.

J’ai donc galéré une première fois pour changer l’encodage d’Ubuntu, souhaitant le passer en ISO8859-15. Des tas de techniques existent, mais chez moi aucune n’a marché jusqu’à ce que je sois finalement tombé sur un excellent post qui explique la manipulation, que je me suis permis de le traduire :

Changer les locales supportées
Éditez le fichier /var/lib/locales/supported.d/local (en root) en y ajoutant les lignes suivantes :

fr_FR ISO-8859-1
fr_FR@euro ISO-8859-15

Regénérer les  locales
Lancez la commande suivante :

sudo dpkg-reconfigure locales

Changer la locale par défaut
Éditez le fichier /etc/environment pour y ajouter :

LANGUAGE="fr_FR:fr"
LANG="fr_FR@euro"

Rebooter !

Cela permet ainsi de résoudre, dans un premier temps, les problèmes liés à l’encodage par défaut du système. Si vous lancez la commande locale charmap dans un shell, vous devriez obtenir l’affichage suivant :

ISO-8859-15

Dans un deuxième temps, j’ai rencontré un deuxième problème : lorsque je connecte mon disque dur externe, il se monte, mais il est incapable de gérer les accents dans les noms de fichiers. Pour s’en rendre compte, c’est très simple : il suffit de tenter de créer un fichier avec un nom comportant un accent. Chez moi, konqueror m’affichait une erreur…

D’après mes recherches, ce problème serait dû à HAL, le module chargé de monter automatiquement les disques, car celui-ci monte par défaut tous les systèmes de fichiers… en UTF8 ! Pour résoudre ce problème, il m’a fallu un peu de temps avant de trouver cette manip :

Supprimer le lien symbolique /sbin/mount.ntfs-3g :

 sudo rm /sbin/mount.ntfs-3g

Le remplacer (créer un fichier de même nom) avec ce contenu :

#!/bin/bash
/bin/ntfs-3g $1 $2 -o locale=fr_FR@euro

Le rendre exécutable : sudo chmod +x /sbin/mount.ntfs-3g

Et voila ! Normalement, en rebranchant le disque dur externe, celui-ci est correctement monté et les accents sont supportés.

Merci aux deux auteurs de ces solutions !

  1. Une réponse à “Problèmes de locale dans Ubuntu”

  2. Je ne sais pas si c’est une bonne idée de changer les locales comme ça. En effet l’encodage UTF-8 a l’avantage de supporter notamment les caractères chinois, ce qui est un plus appréciable. (Je vois ça dans mon boulot actuel, où ceux qui ont leur PC sous Windows ne peuvent pas aller dans toutes les arborescences du serveur à cause du non support des caractères chinois…)

    Au fait, as-tu changé les locales de ton filesystem ? Parce que le filesystem Ubuntu est en UTF-8 depuis… Hoary. A l’époque j’avais eu des problèmes parce que justement la Mandriva que j’avais avant était elle en ISO-8859-15.

    D’autant que même les W*****s tendent à utiliser l’encodage UTF-8 pour les fichiers, si je ne raconte pas d’ânerie.

    Par - le 23 août 2008

Désolé, les commentaires sont fermés pour le moment.