Я провожу много своего времени 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)?