Estou tentando aprender como a $LANG
variável se comporta com o gnome-terminal (e sua opção de preferência de codificação de caracteres). Eu tenho usado iso8859-1 (latin1) como meu conjunto de caracteres principal e todos os meus nomes de arquivo são codificados como tal.
Para os testes a seguir, criarei ls -l
um diretório com caracteres acentuados em espanhol nos nomes de arquivos:
Caso 1:
- terminal gnome configurado para ISO-8859-1
LANG
definido como "en_US-iso8859-1"- Resultado: vejo todos os arquivos corretamente
Caso 2:
- terminal gnome configurado para UTF-8
LANG
definido como "en_US-iso8859-1"- Resultado: vejo caracteres ilegíveis para todos os caracteres em espanhol. Isso é esperado quando eu mudei a codificação de caracteres para o terminal
Caso 3:
- terminal gnome configurado para ISO-8859-1
LANG
definido como "en_US-UTF-8"- Resultado: vejo caracteres ilegíveis para todos os caracteres em espanhol.
Por que, neste último caso, vejo caracteres ilegíveis? A saída de ls não deve enviar os nomes de arquivos diretamente para o terminal gnome como estão? E como o gnome-terminal está configurado para ISO-8859-1, eu esperava que eles parecessem corretos.
Por um momento, pensei que, talvez, talvez o bash esteja considerando minha $LANG
variável e realizando alguma conversão. Então mudei meu terminal para UTF-8, mas ainda não consigo ver os caracteres corretamente. Até canalizei a saída de ls para xxd e, para minha surpresa, ainda vejo os arquivos codificados como estão: ISO-8859-1.
Para finalizar: Se minha listagem contiver caracteres ISO-8859-1 e meu emulador de terminal estiver configurado para a mesma codificação de caracteres: Quem está fazendo a conversão quando LANG
está definido de outra forma?
Obrigado por qualquer ajuda que você pode fornecer.
Craconia