O SO Post estava na direção certa, mas existem várias variáveis de ambiente que podem ser testadas por um aplicativo. Eu uso esse script, por exemplo, para definir com segurança a localidade para comandos:
#!/bin/sh
# $Id: with-locale,v 1.6 2011/10/27 22:51:45 tom Exp $
unset LANG
unset LC_ALL
unset LC_CTYPE
unset LESSCHARSET
unset LANGUAGE
LANG=$1
LC_ALL=$1
GDM_LANG=$1
export LANG
export LC_ALL
export GDM_LANG
shift
exec "$@"
Ou seja, com with-locale
no meu caminho, posso fazer
with-locale C mmmmmm
para verificar se não há mensagens codificadas.
Você pode sempre verificar quais variáveis se aplicam ao seu ambiente executando o locale
comando.
Um dos comentários foi perguntado sobre dpkg-reconfigure locales
. Isto é,
sudo dpkg-reconfigure locales
daria a você a maneira de alterar as configurações de localidade padrão na máquina (veja por exemplo Como corrijo meu problema de localidade? no AskUbuntu). Sua inicialização do shell pode, naturalmente, substituí-los. Note que, porque existem várias variáveis, elas podem ser configuradas de forma inconsistente. A página de manual locale (7) menciona algumas das possibilidades, incluindo as LANGUAGE
variável que pode ser a fonte de problemas porque substitui as variáveis padrão POSIX.