Problème de caractères turcs dans desnoms de fichiers (parta…

Page principale

Répondre à ce message
Auteur: Marc TERRIER
Date:  
À: ML Guilde
Nouveaux-sujets: Re: Problème de caractères turcs dans des noms de fichiers (partage d'expérience), Re: Problème de caractères turcs dans des noms de fichiers (partage d'expérience)
Sujet: Problème de caractères turcs dans desnoms de fichiers (partage d'expérience)
Bonjour,

Sur une machine Debian 8.9 stable, je vais en ligne de commande (bash) dans le répertoire /usr/share/ca-certificates/mozilla/ et je tape 'ls -l'. Quelques fichiers apparaissent avec des points d'interrogation à la place de certains caractères. Exemple :

     AC_Ra??z_Certic??mara_S.A..crt
     EBG_Elektronik_Sertifika_Hizmet_Sa??lay??c??s??.crt
     NetLock_Arany_=Class_Gold=_F??tan??s??tv??ny.crt
     T??B??TAK_UEKAE_K??k_Sertifika_Hizmet_Sa??lay??c??s??_-_S??r??m_3.crt
     T??RKTRUST_Elektronik_Sertifika_Hizmet_Sa??lay??c??s??_H5.crt
     T??RKTRUST_Elektronik_Sertifika_Hizmet_Sa??lay??c??s??_H6.crt


Cela me pose un problème bloquant pour effectuer un certain traitement sur cette machine à l'aide d'un logiciel maison qu'on utilise au boulot. Donc même si ce n'est pas la solution la plus élégante, j'ai cherché à supprimer ces fichiers, qui ne me servent à rien, et pour cela, j'ai tapé 'rm' avec les premiers caractères du nom de fichier suivi de deux fois Tab, et là (ô surprise), contrairement à 'ls', 'rm' affiche les noms de fichiers correctement, avec des caractères turcs (ou quelque chose du genre), et non des points d'interrogation :

     AC_Raíz_Certicámara_S.A..crt
     EBG_Elektronik_Sertifika_Hizmet_Sağlayıcısı.crt
     NetLock_Arany_=Class_Gold=_Főtanúsítvány.crt
     TÜBİTAK_UEKAE_Kök_Sertifika_Hizmet_Sağlayıcısı_-_Sürüm_3.crt
     TÜRKTRUST_Elektronik_Sertifika_Hizmet_Sağlayıcısı_H5.crt
     TÜRKTRUST_Elektronik_Sertifika_Hizmet_Sağlayıcısı_H6.crt


Je voulais vous demander si cette différence entre les deux commandes est normale sur une machine fraîchement installée, et si oui, à quoi elle est dûe. Mais avant d'envoyer ce message sur la liste de diffusion, je me suis dit que si c'était un problème de locale, les deux commandes ls et rm devraient se comporter pareil. Cela m'a mis la puce à l'oreille : j'ai donc cherché côté locales, et j'ai découvert que le problème est connu : https://wiki.debian.org/fr/UTF-8.

root@debiantest:~# locale
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=fr_FR.UTF-8
LC_TIME=fr_FR.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=fr_FR.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=fr_FR.UTF-8
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT=fr_FR.UTF-8
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

root@debiantest:~# apt-get install locales
Reading package lists... Done
Building dependency tree       
Reading state information... Done
locales is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.


root@debiantest:~# dpkg-reconfigure locales                        ( j'ai cru bien faire en choisissant C.UTF-8 dans le deuxième écran )
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_US:en",
    LC_ALL = (unset),
    LC_PAPER = "fr_FR.UTF-8",
    LC_MONETARY = "fr_FR.UTF-8",
    LC_NUMERIC = "fr_FR.UTF-8",
    LC_MEASUREMENT = "fr_FR.UTF-8",
    LC_TIME = "fr_FR.UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
locale: Cannot set LC_ALL to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
Generating locales (this might take a while)...
  en_US.ISO-8859-15... done
  en_US.UTF-8... done
  fr_FR.UTF-8... done
  fr_FR.ISO-8859-15@euro... done
Generation complete.
*** update-locale: Warning: LANGUAGE ("en_US:en") is not compatible with LANG (C.UTF-8). Disabling it.


root@debiantest:~# dpkg-reconfigure locales                        ( en choisissant fr_FR.UTF-8 dans le deuxième écran, cette fois )
Generating locales (this might take a while)...
  en_US.ISO-8859-15... done
  en_US.UTF-8... done
  fr_FR.UTF-8... done
  fr_FR.ISO-8859-15@euro... done
Generation complete.


root@debiantest:~# apt-get install --reinstall ca-certificates     ( pour remettre les fichiers supprimés, et voir si le 'dpkg-reconfigure locales' règle le problème )


root@debiantest:~# cd -

root@debiantest:/usr/share/ca-certificates/mozilla# ls -l
total 692
[...]
-rw-r--r-- 1 root root 2281 avril 29 01:22 AC_Raíz_Certicámara_S.A..crt
[...]
-rw-r--r-- 1 root root 2106 avril 29 01:22 EBG_Elektronik_Sertifika_Hizmet_Sağlayıcısı.crt
[...]
-rw-r--r-- 1 root root 1476 avril 29 01:22 NetLock_Arany_=Class_Gold=_Főtanúsítvány.crt
[...]
-rw-r--r-- 1 root root 1826 avril 29 01:22 TÜBİTAK_UEKAE_Kök_Sertifika_Hizmet_Sağlayıcısı_-_Sürüm_3.crt
-rw-r--r-- 1 root root 1501 avril 29 01:22 TÜRKTRUST_Elektronik_Sertifika_Hizmet_Sağlayıcısı_H5.crt
-rw-r--r-- 1 root root 1501 avril 29 01:22 TÜRKTRUST_Elektronik_Sertifika_Hizmet_Sağlayıcısı_H6.crt
[...]

Et, last but not least, une fois cette manip effectuée, le traitement que j'avais à effectuer sur cette machine à l'aide du logiciel maison *fonctionne* ! Alléluia, toussa toussa...

Ce message n'est donc plus une question, mais un partage d'expérience. La culture, c'est comme la confiture : moins on en a, plus on l'étale.

--
Marc