Próbuję dowiedzieć się, jak $LANG
zachowuje się zmienna z gnome-terminalem (i opcją preferencji kodowania znaków). Używam iso8859-1 (latin1) jako mojego głównego zestawu znaków i wszystkie moje nazwy plików są zakodowane jako takie.
Dla następujących testów zrobię ls -l
katalog z hiszpańskimi znakami akcentowanymi w nazwach plików:
Przypadek 1:
- terminal gnome skonfigurowany dla ISO-8859-1
LANG
ustawiono na „en_US-iso8859-1”- Wynik: poprawnie widzę wszystkie pliki
Przypadek nr 2:
- terminal gnome skonfigurowany dla UTF-8
LANG
ustawiono na „en_US-iso8859-1”- Wynik: widzę śmieciowe znaki dla wszystkich hiszpańskich znaków. Jest to oczekiwane, ponieważ zmieniłem kodowanie znaków dla terminala
Przypadek nr 3:
- terminal gnome skonfigurowany dla ISO-8859-1
LANG
ustawiono na „en_US-UTF-8”- Wynik: widzę śmieciowe znaki dla wszystkich hiszpańskich znaków.
Dlaczego w tym ostatnim przypadku widzę zniekształcone postacie? Czy wyjście ls nie powinno wysyłać nazw plików prosto do terminala gnome? A ponieważ terminal gnome jest skonfigurowany dla ISO-8859-1, oczekiwałbym, że będą wyglądać dobrze.
Przez chwilę myślałem, że być może bash rozważa moją $LANG
zmienną i dokonuje konwersji. Potem zmieniłem terminal na UTF-8, ale nadal nie widzę poprawnie znaków. Nawet potokowałem wyjście ls do xxd i ku mojemu zdziwieniu wciąż widzę pliki zakodowane takimi, jakie są: ISO-8859-1.
Podsumowując: Jeśli mój wpis zawiera znaki ISO-8859-1, a emulator terminala jest skonfigurowany do tego samego kodowania znaków: Kto dokonuje konwersji, jeśli LANG
jest inaczej?
Dzięki za wszelką pomoc, którą możesz udzielić.
Craconia