Я пытаюсь узнать, как $LANG
переменная ведет себя с gnome-терминал (и его параметр предпочтения кодировки символов). Я использовал iso8859-1 (latin1) в качестве основного набора символов, и все мои имена файлов закодированы как таковые.
Для следующих тестов я создам ls -l
каталог с испанскими символами в именах файлов:
Дело 1:
- GNOME-терминал настроен для ISO-8859-1
LANG
установить "en_US-iso8859-1"- Результат: я вижу все файлы правильно
Дело № 2:
- gnome-терминал настроен на UTF-8
LANG
установить "en_US-iso8859-1"- Результат: я вижу мусорные символы для всех испанских символов. Это ожидается, поскольку я изменил кодировку символов для терминала
Дело № 3:
- GNOME-терминал настроен для ISO-8859-1
LANG
установить на "en_US-UTF-8"- Результат: я вижу мусорные символы для всех испанских символов.
Почему в этом последнем случае я вижу искаженные символы? Разве вывод ls не должен отправлять имена файлов прямо на gnome-терминал, как они есть? И поскольку gnome-терминал настроен на ISO-8859-1, я ожидал, что они будут выглядеть правильно.
На мгновение я подумал, что, возможно, возможно, bash рассматривает мою $LANG
переменную и выполняет какое-то преобразование. Затем я переключил свой терминал на UTF-8, но я все еще не могу видеть символы правильно. Я даже передал вывод ls в xxd и, к своему удивлению, все еще вижу файлы, закодированные в том виде, как они есть: ISO-8859-1.
В заключение: если мой список содержит символы ISO-8859-1 и мой эмулятор терминала настроен на ту же кодировку символов: кто выполняет преобразование, если LANG
установлено иное?
Спасибо за любую помощь, которую вы можете предоставить.
Craconia