Я провожу много времени ssh
на разных машинах, все они разные (некоторые встроены, некоторые работают под управлением Linux, некоторые работают под управлением BSD и т. Д.). Однако на своих локальных компьютерах я использую OS X, которая, конечно, имеет пользовательский интерфейс, основанный на BSD. Моя локаль на этих машинах установлена в en_GB.UTF-8, что является одним из доступных вариантов:
% echo `sw_vers`
ProductName: Mac OS X ProductVersion: 10.8.2 BuildVersion: 12C60
% locale -a | grep -i 'en_gb.utf'
en_GB.UTF-8
Некоторые из более мощных систем Linux, которые я использую, похоже, имеют эквивалентную опцию, но я отмечаю, что в Linux имя немного отличается:
% lsb_release -d
Description: Debian GNU/Linux 6.0.3 (squeeze)
% locale -a | grep -i 'en_gb.utf'
en_GB.utf8
Это заставляет меня задуматься: когда я ssh
захожу на Linux-машину с моего Mac, и она пересылает все мои LC_*
переменные с этим суффиксом «UTF-8», понимает ли эта Linux-машина, что о ней спрашивают? Или это просто отступление к какой-то другой локали?
редактировать: вот пример того, что я имею в виду:
% ssh -v odin
...
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LC_ALL = en_GB.UTF-8
debug1: Sending env LC_COLLATE = en_GB.UTF-8
debug1: Sending env LC_CTYPE = en_GB.UTF-8
debug1: Sending env LC_MESSAGES = en_GB.UTF-8
debug1: Sending env LC_MONETARY = en_GB.UTF-8
debug1: Sending env LC_NUMERIC = en_GB.UTF-8
debug1: Sending env LC_TIME = en_GB.UTF-8
debug1: Sending env LANG = en_GB.UTF-8
odin:~ % locale | tail -1 # locale is set to .UTF-8 without error...
LC_ALL=en_GB.UTF-8
odin:~ % locale -a | grep 'en_GB.UTF-8' # ... even though .UTF-8 isn't an option
odin:~ %
В любом случае, каков механизм его поведения и зависит ли он от какой-либо конкретной настройки (например, я увижу то же поведение в системе на основе BusyBox, что и на системе на основе GNU)?