Estou tentando ssh para FreeBSD-11.2-Release da minha máquina Windows usando o Mintty, mas quando defino LC_ALL para en_US.UTF-8 e tento inserir/colar um caractere não ASCII, a conexão foi fechada.
Estou usando o Cygwin e também tentei o Qterminal e o Terminator.
O FreeBSD tem um problema com caracteres UTF-8 na versão 11.2-Release? Ou isso é apenas específico do Windows (o que quero dizer que os usuários do macOS ou Linux não têm problemas com isso)?
Nota: Eu não tenho nenhum sistema de janelas instalado na máquina FreeBSD.
Você reivindica a configuração,
LC_ALL
mas não tenho certeza de que está fazendo isso corretamente. Tudo está realmente coberto no Manual do FreeBSD: 22.2. Como usar a localizaçãoEu recomendo fortemente que você use o "Método de Classes de Login" (login.conf) em vez do "Método de Arquivo de Inicialização do Shell" (.profile), pois ele é muito mais consistente no sistema e nos shells.
Quando as pessoas dizem que modificaram as configurações relacionadas ao idioma, geralmente esquecem 2 coisas:
/etc/login.conf
(todo o sistema) ou~/.login.conf
(usuário), você precisa executar cap_mkdb para ter algum efeito!A primeira coisa é verificar suas configurações executando o comando locale. Em um sistema FreeBSD vanilla, ele mostrará isso:
Com essas configurações, você terá problemas de Unicode com os terminais mais comuns. Estou usando o PuTTY, mas não consigo colar o seguinte teste no terminal:
Isso ocorre porque a configuração padrão do FreeBSD é não usar unicode. Esta resposta foi testada em relação ao 11.2, mas no futuro, a partir do 13, o padrão será "C.UTF8" e nenhuma alteração será necessária. Em uma instalação vanilla, você pode, no entanto, fazer uma verificação muito rápida configurando seu usuário para usar "russian". A razão é que o russo é o único idioma definido fora da caixa (em
/etc/login.conf
) e está usando unicode.Agora faça login em uma nova sessão usando a conta "johndoe" (seja qual for o nome do seu usuário). Agora você poderá colar unicode (do teste acima) no shell. Verifique como as configurações foram selecionadas usando
locale
Como agora verifiquei que o unicode básico realmente funciona - então posso começar a configurar as coisas ao meu gosto. Como sou dinamarquês, vou realizar os seguintes passos simples:
1. Adicione configurações de idioma
Para cada idioma que eu precisar, adicionarei uma seção ao
/etc/login.conf
2. Atualizar banco de dados
Sempre que você edita o login.conf de origem, você precisa atualizar o banco de dados.
3. Defina os idiomas do usuário
Eu costumo usar
pw
para gerenciar meus usuários. Agora só preciso especificar o idioma quando crio ou modifico meus usuários.DICA: Minha preferência pessoal é não alterar o "padrão" de todo o sistema, mas mantê-lo como padrão. Em seguida, defino o idioma para contas do sistema, como "postgres". Se você tiver configurações muito específicas necessárias para uma conta do sistema não coberta por sua configuração de idioma, eu criaria um "idioma" separado (classe de login) para essa conta em
/etc/login.conf
. Isso mantém as coisas bonitas e arrumadas.DICA 2: O acima mostra como definir a classe com base no usuário. Se você deseja uma mudança em todo o sistema, você pode alterar a classe "default" em login.conf.
DICA PuTTY: Seu terminal naturalmente também precisa estar ciente de UTF-8. No PuTTY isso está nas configurações: Window ⮕ Translation. Eu tenho o meu definido como "UTF-8". Se você estiver na área CJK, marque "Tratar caracteres ambíguos CJK como amplos". E os usuários de cirílico geralmente gostam de "Caps Lock atua como interruptor cirílico".