Paso gran parte de mi tiempo ssh
editado en varias máquinas, todas las cuales son diferentes (algunas están integradas, algunas ejecutan Linux, algunas ejecutan BSD, etc.). Sin embargo, en mis propias máquinas locales, uso OS X, que por supuesto tiene un país de usuario basado en BSD. Mi configuración regional en esas máquinas está establecida en en_GB.UTF-8, que es una de las opciones disponibles:
% echo `sw_vers`
ProductName: Mac OS X ProductVersion: 10.8.2 BuildVersion: 12C60
% locale -a | grep -i 'en_gb.utf'
en_GB.UTF-8
Varios de los sistemas Linux más capaces que uso parecen tener una opción equivalente, pero observo que en Linux el nombre es ligeramente diferente:
% lsb_release -d
Description: Debian GNU/Linux 6.0.3 (squeeze)
% locale -a | grep -i 'en_gb.utf'
en_GB.utf8
Esto me hace preguntarme: cuando entro ssh
en una máquina Linux desde mi Mac, y reenvía todas mis LC_*
variables con ese sufijo 'UTF-8', ¿esa máquina Linux comprende lo que se le pide? ¿O simplemente se está volviendo a otro lugar?
editar: Aquí hay un ejemplo de lo que me refiero:
% 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:~ %
En cualquier caso, ¿cuál es el mecanismo detrás de su comportamiento, y depende de una configuración particular (por ejemplo, ¿veré el mismo comportamiento en un sistema basado en BusyBox que en uno basado en GNU)?