Forum général.général Encodage des caractères sous linux

Posté par  .
Étiquettes : aucune
0
23
juil.
2005
Bonjour tout le monde,

Je suis à la recherche d'infos basiques sur l'encodage des caractères sous linux...
Je sais pas trop par ou commencer n'ayant pas trouver de docs évidente par google...

Peut-être connaissez vous tutoriaux et 'how-to' en lignes ?
Voila les questions que je me pose :

Ou est défini l'encodage par défaut (si il y'en a un) ?
Quand je fais 'cat toto' dans un gnome-terminal par exemple, comment choisit il l'encodage ?
Peut-on changer l'encodage par défaut du système ?
Y'a t'il des outils de conversions ? (utf8 <-> isoXXX ...) en ligne de commande ?
etc...

Merci de vos tuyaux !

PA.
  • # Encodage des caractères sous linux

    Posté par  . Évalué à 3.

    (Je ne suis pas un dieu dans le domaine et j'espère ne pas dire de connerie...)

    Ou est défini l'encodage par défaut (si il y'en a un) ?

    oui se sont les locales qui définissent l'encodage par défaut. La commande locale t'indiquera les locales ayant cours sur ton système.

    Quand je fais 'cat toto' dans un gnome-terminal par exemple, comment choisit il l'encodage ?

    En fonction de tes locales (cf question précédente).

    Peut-on changer l'encodage par défaut du système ?

    oui on peut. Pour la distribution Debian tu fais un dpkg-reconfigure locales. Pour les autres distri je ne sais pas.

    Y'a t'il des outils de conversions ? (utf8 <-> isoXXX ...) en ligne de commande ?

    Je pense que si tu regardes du côté de recode tu devrais trouver ton bonheur.
    • [^] # Re: Encodage des caractères sous linux

      Posté par  . Évalué à 1.

      Merci pour tes réponses !

      Tout ce que j'ai pu trouver avec commande 'locale' c'est que ma locale est 'fr_CA' ... pas réussi à trouver l'encodage correspondant... une idée de ce qu'il faut regarder ?

      Sinon, je suis sous mandriva : quelqu'un connait-il un équialent à 'dpkg-reconfigure locales' ?
  • # meuh

    Posté par  (site Web personnel) . Évalué à 2.

    Ou est défini l'encodage par défaut (si il y'en a un) ?

    Ce sont les variables d'environnement qui commencent par LC_, plus LANGUAGE et LANG, qui contrôlent cela. Comme dit plus haut, faire « locale » en ligne de commande permet de les examiner de manière groupée. Tu peux faire « locale charmap » pour connaître ton encodage à un moment donné. Typiquement, « fr_FR » dans LC_CTYPE indique une configuration française en ISO-8859-15 et « fr_FR.UTF-8 » ou « fr_FR.utf8 » (ça dépend de la distro mais je ne sais pas pourquoi) indique une configuration française en UTF-8.

    Quand je fais 'cat toto' dans un gnome-terminal par exemple, comment choisit il l'encodage ?

    En fait c'est la glibc (bibliothèque C standard) qui typiquement gère cela. En effet, tu peux très bien écrire sur la sortie standard des octets correspondant à du texte dans l'encodage que tu souhaites, si tu gères tout dans ton coin, et bien sûr ce sera incohérent avec la configuration de ton système :) Mais je m'égare. Pour répondre à ta question, quand tu fais « cat toto », à ma connaissance il n'y a aucun choix d'encodage pour afficher les données, puisque tu parles d'un fichier binaire qui donc par définition n'indique pas son encodage.

    Peut-on changer l'encodage par défaut du système ?

    Oui. Comme indiqué plus haut, il s'agit donc d'une part de la glibc (qui doit avoir certaines routines de conversions) et des variables d'environnement. Pour la glibc il y a typiquement des sous-packages à installer sur mandriva, c'est « locales-fr » pour les configurations francophones par exemple. Note que chaque configuration régionale possède souvent des définitions en plusieurs encodages, la française par exemple fera ISO-8859-15 et UTF-8. Ensuite pour changer les variables d'environnement, ça dépend de la distro. Sous mandriva c'est dans le fichier « /etc/sysconfig/i18n » pour tout le système et « ~/.i18n » pour un utilisateur particulier, mais le programme « localedrake » te permet d'effectuer la modification de manière graphique (à lancer en root pour modifier pour tout le système, ou en utilisateur pour modifier juste pour l'utilisateur). Cependant, je ne suis pas sûr que localedrake permette de changer l'encodage (il est prévu pour changer la langue et le pays plutôt), en effet il est constaté que changer l'encodage d'un système déjà installé peut induire des problèmes car il y a de nombreuses choses à changer : configuration des terminaux, configuration de la console, configuration des options de montages des partitions windows.

    Y'a t'il des outils de conversions ? (utf8 <-> isoXXX ...) en ligne de commande ?

    Oui, « iconv -f utf8 -t latin1 » convertit d'utf8 vers latin1, par exemple.
    • [^] # Re: meuh

      Posté par  . Évalué à 1.

      Merci à toi aussi pour tes réponses.

      Il me reste juste une petite question : etant donnée une locale ('da', 'fr_CA', 'es',...) comment retrouver l'encodage ?
      • [^] # Re: meuh

        Posté par  (site Web personnel) . Évalué à 2.

        je ne sais pas :/

        moi je place temporairement LC_CTYPE pour le faire :

        [gc@meuh ~] locale charmap
        UTF-8
        [gc@meuh ~] LC_CTYPE=fr_FR locale charmap
        ISO-8859-1

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.