Códigos de caracteres especiais são exibidos no Terminal para diacríticos ao se conectar a um servidor Ubuntu

3

Quando me conecto a um servidor Ubuntu (ssh) e tento ver algum texto no Terminal do servidor remoto, recebo códigos de caracteres em vez do texto apropriado com diacríticos.

por exemplo, para um git log no servidor eu recebo:

Author: Ionic<C4><83> Biz<C4><83>u <bizauionica@...>

ao invés de:

Author: Ionică Bizău <bizauionica@...>

Quando eu faço git log na minha máquina local no Terminal, recebo os diacríticos corretos.

Não tenho ideia de qual categoria esta questão é:

  • terminal
  • bater
  • ssh
  • Ubuntu
  • git

Inicialmente pedi ao Ubuntu por esse problema mas eles me redirecionaram aqui.

Alguma ideia?

Gabriel Petrovay
fonte
Terminal está mostrando os bytes UTF-8 em hexadecimal para o caractere não ascii, provavelmente alguma configuração de preferência precisa de ajuste.
Tom Gewecke
O que locale imprimir no servidor, ou você tentou executar export LANG=en_US.UTF-8?
Lri
No servidor Ubuntu (visto através de SSH): `LANG = en_US.UTF-8 LANGUAGE = LC_CTYPE = UTF-8 LC_NUMERIC =" en_US.UTF-8 "LC_TIME =" en_US.UTF-8 "LC_COLLATE =" en_US.UTF- 8 "LC_MONETARY =" en_US.UTF-8 "LC_MESSAGES =" en_US.UTF-8 "LC_PAPER =" en_US.UTF-8 "LC_NAME =" en_US.UTF-8 "LC_ADDRESS =" en_US.UTF-8 "LC_TELEPHONE =" en_US.UTF-8 "LC_MEASUREMENT =" en_US.UTF-8 "LC_IDENTIFICATION =" en_US.UTF-8 "LC_ALL ="
Gabriel Petrovay
E no meu Mac: `LANG = LC_COLLATE =" C "LC_CTYPE =" UTF-8 "LC_MESSAGES =" C "LC_MONETARY =" C "LC_NUMERIC =" C "LC_TIME =" C "LC_ALL =`
Gabriel Petrovay

Respostas:

5

o LC_ALL variável com um valor vazio estava causando o problema.

Assim, a solução deste problema pode ser encontrada em SO Aqui :

No mac, o LC_ALL variável não está definida por padrão. Então escrevendo:

export LC_ALL=en_US.UTF-8  

na tua ~/.bash_profile Corrige o problema. Eu suponho que você tem uma configuração SSH padrão que tem LC_* no SendEnv configuração.

Gabriel Petrovay
fonte