Como exibir caracteres chineses corretamente na máquina remota Red-Hat?

7

Estou usando o Ubuntu14.04 para conectar-me a um host remoto.

Qual é sua versão:

Versão 2.6.32-431.11.5.el6.yyyzzz.x86_64 do Linux (gcc versão 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC)) # 1 SMP Qui 3 de julho 09:42:34 CST 2014

Meu arquivo de upload nessa máquina não exibe caracteres chineses corretamente. E eu abro um arquivo, tipo randomly Chinese Character com Ubuntu ibus input method . E isso mostra:

~R~V�~K~B~I~W个~I~N~T�饭~T~E

Eu pesquisei on-line e tentei os dois métodos a seguir:

1: examine a localidade

It shows:

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=

Não parece nenhum problema.

2: instalar o pacote de suporte ao idioma chinês

eu fiz:

yum install "@Chinese Support"

Ele instalou arquivos 178M nessa máquina.

Depois disso, abro outro arquivo e tento digitar algum chinês com o ibus. Mas o problema continua, como resolvê-lo?

update1 Eu fiz mais algumas pesquisas depois. Eu acho que alguns caracteres podem ser digitados corretamente (via método de entrada Pinyin, ibus). como:

起 度 顿 客

Eles são todos correspondentes ao seu Pinyin. Mas há um espaço gerado por automação após cada caractere (não digitado por mim).

Se eu tentar digitar 启 , 杜 , 盾 , they (eles têm o mesmo Pinyin que os 4 caracteres chineses acima). Eu tenho:

�~P�~]~\ ~[� ~H�

Pela minha experiência, se a conversão do código está totalmente confusa. Quando eu digito um Pinyin, recebo alguns caracteres com fio que parecem chineses, mas na verdade não eram, e eles nunca corresponderão àquele Pinyin que eu digitei.

Desta vez, as coisas são um pouco diferentes. Eu posso digitar alguns caracteres corretamente (com um espaço gerado pelo sistema), e outros são indecifráveis.

    
por Zen 09.08.2014 / 06:04

2 respostas

5

Basicamente, isso pode ser um problema de incompatibilidade entre sua localidade, definida como UTF-8 , e a codificação de seu arquivo de caracteres Chineses, que pode ser codificado em gbk , gb2312 , gb18030 , ou Big-5 .

Todas as codificações listadas acima são incompatíveis com UTF-8 .

Agora, vamos supor que gbk seja a codificação do seu arquivo. Portanto, quando você tenta mostrar o conteúdo do arquivo, um arquivo gbk codificado é interpretado como um arquivo UTF-8 , o que causa o jargão.

Aí vem a solução.

  • Use luit . (Preferido)

    $ whatis luit
    luit (1)             - Locale and ISO 2022 support for Unicode terminals
    

    luit -encoding gbk cat a_chinese_file.txt

Como a maioria das codificações (se não todas) em uso é compatível com ASCII , e se você precisar apenas de caracteres em ASCII e outra codificação, poderá usar os dois métodos a seguir.

  • Altere a codificação do seu terminal

    Você pode considerá-lo, já que esse método não exige que um pacote adicional seja instalado.

  • Alterar sua localidade

    Mas acho que isso exige que você instale o local correspondente.

Alguns detalhes sobre a codificação chinesa mencionada acima.

  • gbk , gb2312 , gb18030 são codificações para chinês simplificado.

    Se você não tiver certeza sobre qual codificação está usando, suponha que gb18030 .

    O número de caracteres contidos em cada codificação segue o seguinte: gb18030 > gbk > %código%. E a codificação superior é um superconjunto do que segue.

  • gb2312 é a codificação para chinês tradicional.

Além disso, a codificação para chinês simplificado é às vezes referida como Big-5 (Página de código 936, acho que esse nome vem do Windows).

    
por 09.08.2014 / 07:30
0

Acabei de adicionar esta linha em ~/.bash_profile :

export LC_ALL=en_US.UTF-8
    
por 16.05.2017 / 11:04