Esse problema geralmente é causado devido a variáveis ambientais, portanto, verifique primeiro.
digite env
você pode obter o resultado. No meu caso, LANG ( export LANG=en_US.UTF-8
) apenas funciona.
O problema que estou tentando resolver aqui é que, no terminal de uma sessão ssh para uma máquina OS X, a saída do comando ls
não pode exibir caracteres chineses codificados utf8 corretamente nos nomes dos arquivos (mostrando algo como %código%). O cliente ssh que estou usando é ???
e securecrt
no Windows (ambos estão configurados para usar a codificação utf8). Ambos têm esse problema. Por outro lado, os caracteres utf8 no conteúdo do arquivo podem ser exibidos corretamente (como via putty
e vim
), e o recurso de preenchimento automático do bash também pode exibir caracteres utf8 em nomes de arquivos corretamente (ambos na lista de candidatos são vários candidatos e no nome do arquivo que é preenchido automaticamente quando há apenas um candidato.)
Então a questão é, como fazer cat
exibir nomes de arquivos codificados utf8 no terminal de uma sessão ssh para uma máquina OS X?
Esse problema geralmente é causado devido a variáveis ambientais, portanto, verifique primeiro.
digite env
você pode obter o resultado. No meu caso, LANG ( export LANG=en_US.UTF-8
) apenas funciona.
Para Putty: Na máquina de destino do OSX, procure a variável de ambiente LC_CTYPE ( echo $LC_CTYPE
). Deve ser UTF-8 ou algo como en_EN.UTF-8 . (Se for apenas algo como "en_EN", então é definido como ISO. Nesse caso, altere-o para en_EN.UTF-8 adicionando EXPORT LC_CTYPE=en_EN.UTF-8
ao seu $ HOME / .bash_profile ). Em sua máquina Windows em Putty ir para a configuração - > janela / tradução e lá selecione o mesmo conjunto de caracteres que o env var na sua máquina OSX. Se tanto o env var no servidor quanto o putty forem os mesmos, deve estar funcionando.