Я намагаюся дізнатися, як $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-terminal, як вони є? А оскільки gnome-термінал налаштований для ISO-8859-1, я б очікував, що вони виглядатимуть правильно.
На якусь мить я подумав, що, можливо, можливо, баш розглядає мій $LANG
змінний і виконує певну конверсію. Потім я переключив свій термінал на UTF-8, але все ще не бачу символів правильно. Я навіть передав висновок ls в xxd і на моє здивування я все ще бачу файли, закодовані такими, як вони є: ISO-8859-1.
Для завершення: Якщо мій список містить символи ISO-8859-1, а мій емулятор термінала налаштований на те саме кодування символів: хто робить перетворення, якщо LANG
встановлено інше?
Дякуємо за будь-яку допомогу, яку ви можете надати.
Краконія