J'essaie d' apprendre comment la $LANG
variable se comporte avec gnome-terminal (et son option de préférence d'encodage de caractères). J'utilise iso8859-1 (latin1) comme jeu de caractères principal et tous mes noms de fichiers sont codés comme tels.
Pour les tests suivants, je ferai ls -l
un répertoire avec des caractères accentués espagnols dans leurs noms de fichiers:
Cas 1:
- gnome-terminal configuré pour ISO-8859-1
LANG
réglé sur "en_US-iso8859-1"- Résultat: je vois tous les fichiers correctement
Cas n ° 2:
- gnome-terminal configuré pour UTF-8
LANG
réglé sur "en_US-iso8859-1"- Résultat: je vois des caractères inutiles pour tous les caractères espagnols. Cela est attendu car j'ai changé l'encodage des caractères pour le terminal
Cas n ° 3:
- gnome-terminal configuré pour ISO-8859-1
LANG
mis à "en_US-UTF-8"- Résultat: je vois des caractères inutiles pour tous les caractères espagnols.
Pourquoi est-ce que dans ce dernier cas, je vois des caractères tronqués? La sortie de ls ne devrait-elle pas envoyer les noms de fichiers directement à gnome-terminal tels qu'ils sont? Et puisque gnome-terminal est configuré pour ISO-8859-1, je m'attendais à ce qu'ils semblent corrects.
Pendant un moment, j'ai pensé que, peut-être, bash envisageait ma $LANG
variable et effectuait une conversion. Ensuite, j'ai changé mon terminal en UTF-8 mais je ne vois toujours pas les bons caractères. J'ai même canalisé la sortie de ls vers xxd et à ma grande surprise, je vois toujours les fichiers encodés tels qu'ils sont: ISO-8859-1.
Pour conclure: si ma liste contient des caractères ISO-8859-1 et que mon émulateur de terminal est configuré pour le même codage de caractères: qui fait la conversion quand LANG
est défini autrement?
Merci pour toute l'aide que vous pouvez apporter.
Craconia