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.
# meuh
Posté par gc . En réponse au message Encodage des caractères sous linux. Évalué à 2.
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.