Una imagen de servidor mínima suele traer solo la configuración regional C y nada más. Todo funciona hasta que el texto deja de ser inglés llano: el árabe se convierte en signos de interrogación en un registro, un nombre de archivo con tilde no se puede crear, y la ordenación coloca los nombres en un orden que ningún lector reconoce.
Mira qué hay configurado
locale
locale -a | head
Si la lista solo contiene C y POSIX, no hay ninguna configuración regional UTF-8 generada en la máquina.
Genera una y ponla
sudo apt-get install -y locales
sudo locale-gen en_US.UTF-8 ar_EG.UTF-8
sudo update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8
Cierra la sesión y vuelve a entrar. Las variables se leen al iniciar sesión, así que el intérprete desde el que las pusiste no las mostrará.
Los avisos que llegan de SSH
Los mensajes sobre una configuración regional que no se puede establecer suelen significar que tu portátil está enviando la suya a un servidor que no la tiene. O generas esa configuración en el servidor, o impides que el cliente la envíe.
# on your machine, ~/.ssh/config
Host *
SendEnv -LANG -LC_*
La base de datos es una cuestión aparte
La configuración regional del servidor no cambia lo que guarda MySQL. Una columna declarada latin1 destroza el árabe y los emojis esté como esté configurado el sistema operativo, y eso se trata en Juego de caracteres, cotejo y la trampa del emoji.
