FreeBSD 10.3 + zfs - conjunto de caracteres exibido incorretamente no terminal

1

Eu tenho um servidor com um compartilhamento de samba no sistema de arquivos zfs. Os nomes dos arquivos estão em húngaro. Quando eu faço o login com o ssh, então os nomes dos arquivos são exibidos incorretamente no terminal:

Seeufizerumautocompletenonomedoarquivo,ficaclaroqueonomedoarquivoemsiébom,contendocaracteresnãoascii:

Játenteidefiniracadeiadetiposdeterminalcomo"putty", altere o conjunto de caracteres do terminal para UTF-8 ou ISO-8859-2, mas nenhum deles ajudou.

O mesmo problema aparece no comando da meia-noite, até mesmo as "linhas" estão incorretas:

AlterooscaracteresdeexibiçãonaconfiguraçãodoputtyparaISO8859-2:

Então,pelomenos,oscaracteresdelinhaestãocorretos,masosnomesdosarquivosaindaestãoruins:

Seeuiniciar"mc -ac", vejo traços em vez de linhas, mas os nomes dos arquivos ainda estão errados:

Portanto,devehaverumproblemacomalocalidade.Seeufizerisso:

setenvLANGhu_HU.ISO8859-2

entãoaindaestáerrado:

EuconfigureiputtyconfigparaUTF-8eLANGparahu_HU.UTF-8,então,ALGUNScaracteressãobons,masnemtodoseles:

Estouperdido.Eutenteimuitasoutrascombinações,masnenhumadelasparecefuncionarcorretamente.Alguémsabecomoconfigurarisso,paraqueosnomesdosarquivoseoscaracteresgráficossejammostradoscorretamentenoshellenomc?

Apropósito,oprefixocorretodonomedoarquivodeveser:"Díjbekérő"

    
por nagylzs 10.01.2017 / 10:27

1 resposta

2

Aqui está a solução correta.

Defina a variável de ambiente LANG para hu_HU.UTF-8

csh:

setenv LANG hu_HU.UTF-8 

bash / sh:

LANG=hu_HU.UTF-8 
export LANG

Defina também a "codificação do terminal" no putty para UTF-8:

Entãoéperfeito,tantonoshellquantonomc:

Issotambémresolveuoproblemaquandoeulogardeumacaixalinuxcomxterm/gnome-terminal,qualquerqueseja.

Parecequeasoluçãogeral"em todo o sistema" é criar uma nova classe em /etc/login.conf com estas:

hungarian|Hungarian:\
    :charset=hu_HU.UTF-8:\
    :lang=hu_HU.UTF-8:\
    :tc=default:

Em seguida, execute cap_mkdb /etc/login.conf e, finalmente, altere as classes de login de usuários específicos com chsh. (Para novos usuários, é melhor especificar a classe de login quando o "adduser" solicitar.)

Tudo foi documentado aqui, exceto pela codificação do terminal:

link

e provavelmente eu poderia ter descoberto isso antes de enviar uma pergunta. Mas estou fornecendo a resposta de qualquer maneira, no caso de alguém encontrar o mesmo problema.

UPDATE: depois de fazer isso, você não poderá usar o WinSCP com as configurações padrão. O WinSCP tentará executar "ls -la" no servidor e analisar o resultado. Para o idioma não inglês, o resultado conterá datas em um idioma diferente e o WinSCP não poderá interpretá-lo. Para superar esse problema, vá para a configuração e altere o comando de listagem de "ls -la" para "env LANG = en_US.UTF-8 ls -la". (Ele está em Editar conexão / Avançado / Ambiente / SCP / Shell / Listagem de diretório)

Ao usar essa configuração, você poderá usar o WinSCP e manter a localidade padrão do usuário ao mesmo tempo.

    
por 11.01.2017 / 08:20