Eu passo muito do meu tempo ssh
em várias máquinas, todas diferentes (algumas são incorporadas, outras rodam Linux, outras rodam BSD etc.). Em minhas próprias máquinas locais, no entanto, eu uso o OS X, que obviamente possui uma área de usuário baseada no BSD. Minha localidade nessas máquinas é definida como en_GB.UTF-8, que é uma das opções disponíveis:
% echo `sw_vers`
ProductName: Mac OS X ProductVersion: 10.8.2 BuildVersion: 12C60
% locale -a | grep -i 'en_gb.utf'
en_GB.UTF-8
Vários dos sistemas Linux mais capazes que eu uso parecem ter uma opção equivalente, mas observo que no Linux o nome é um pouco diferente:
% lsb_release -d
Description: Debian GNU/Linux 6.0.3 (squeeze)
% locale -a | grep -i 'en_gb.utf'
en_GB.utf8
Isso me faz pensar: quando eu entro ssh
em uma máquina Linux do meu Mac, e encaminha todas as minhas LC_*
variáveis com o sufixo 'UTF-8', essa máquina Linux entende o que está sendo solicitado? Ou está apenas voltando a outro local?
edit: Aqui está um exemplo do que estou me referindo:
% 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:~ %
Em qualquer um dos casos, qual é o mecanismo por trás de seu comportamento e depende de qualquer configuração específica (por exemplo, vou ver o mesmo comportamento em um sistema baseado no BusyBox e em um baseado no GNU)?