Sua configuração para LANG
deve corresponder à do terminal. Mais precisamente, sua configuração para LC_CTYPE
(a codificação de caracteres) deve corresponder à codificação do terminal, as outras configurações de local não precisam corresponder. E a codificação do terminal é geralmente especificada por uma opção do emulador de terminal e não por uma variável de código de idioma. O LC_CTYPE
combina duas indicações: diz aos aplicativos qual codificação usar no terminal (tanto para entrada quanto para saída) e informa aos aplicativos qual codificação usar com os arquivos. Nos casos 2 e 3, você disse a ls
para exibir a saída em uma codificação que é diferente da do terminal, então a saída é distorcida.
Se você trabalhar com as codificações UTF-8 e Latin-1 em momentos diferentes, configure seu terminal para usar o UTF-8. Isso deve fazer com que defina LC_CTYPE
para um valor indicando UTF-8; não substitua essa configuração. (Se o emulador de terminal não definir LC_CTYPE
, substitua-o no arquivo de inicialização do shell ou durante toda a sessão.) Para trabalhar com dados do latin-1 em um terminal UTF-8, use luit
(incluído no conjunto de utilitários X).
LC_CTYPE=en_US.iso88591 luit
(Você pode usar qualquer outra localidade com a mesma codificação, por exemplo, LC_CTYPE=es_ES.iso88591 luit
.)