Questão Terminal mostra vários idiomas


No trabalho, preciso conectar-me a bancos de dados e esses bancos de dados contêm campos que contêm caracteres chineses, russos, espanhóis, japoneses, etc. Ao puxá-los no meu terminal, recebo pontos de interrogação. Eu sei que há uma maneira de mostrar os personagens reais em vez de pontos de interrogação, mas como?

:~$ locale nos resultados remotos em:

LANG=en_US.UTF-8
LC_CTYPE="en_US.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=

:~$ locale no clint resulta em:

LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.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=

4
2018-01-03 18:57


origem




Respostas:


Verifica locale para garantir que o lado do servidor esteja usando UTF-8 ou mudar local para UTF-8. Em seguida, configure seu cliente SSH para usar o UTF-8 (não o ISO-8859-1). Por exemplo, se estiver usando o Putty, precisamos definir o conjunto de caracteres do Putty:

Putty: Window-> Translation-> Conjunto de caracteres remoto: UTF-8

enter image description here

Caso contrário, ele usará ISO-8859-1. UMA Problema no Mac resolvido.

Alternativamente, rodar este comando enquanto conectado a um banco de dados mysql irá mostrar caracteres UTF-8 a partir de consultas mysql.

set character_set_results=utf8, character_set_client=utf8, character_set_connection=utf8;

4
2018-01-03 19:04



Então está usando o UTF-8, e isso não funciona. então eu corri estes: sudo cp /usr/share/i18n/SUPPORTED /var/lib/locales/supported.d/local  sudo locale-gen e isso também não funcionou. - Get Off My Lawn
@RyanNaddy Apenas digite locale. Se retorna que está usando UTF-8, bom! Agora o lado do cliente deve ser configurado para usar o UTF-8. Muitos não fazem isso sem configuração explícita. Qual é o seu cliente?
Ambos são UTF-8. Por favor, veja a pergunta atualizada. - Get Off My Lawn
Não importa que o sistema cliente esteja usando o UTF-8 com o locale comando. O cliente SSH provavelmente precisa saber para USE UTF-8. (A maioria precisa disso.) Além disso: em um prompt do MySQL: mysql> set character_set_results = utf8, character_set_client = utf8, character_set_connection = utf8;
este comando consertou: set character_set_results=utf8, character_set_client=utf8, character_set_connection=utf8; - Get Off My Lawn