リモートのRed-Hatマシンで漢字を正しく表示する方法


8

Ubuntu14.04を使用してリモートホストに接続しています。

そのバージョンは次のとおりです。

Linuxバージョン2.6.32-431.11.5.el6.yyyzzz.x86_64(gccバージョン4.4.7 20120313(Red Hat 4.4.7-4)(GCC))#1 SMP Thu Jul 3 09:42:34 CST 2014

そのマシンのアップロードファイルで漢字が正しく表示されません。ファイルを開き、Ubuntuでランダムに漢字を入力しますibus input method。そしてそれは示しています:

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

オンラインで検索し、次の2つの方法を試しました。

1:ロケールを調べる

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=

問題ないようです。

2:中国語サポートパッケージをインストールする

やった:

yum install "@Chinese Support"

そのマシンに178Mのファイルをインストールしました。

その後、別のファイルを開き、ibusで中国語を入力してみます。しかし、問題は残っています、それをどのように解決しますか?


update1 後でさらに調査を行いました。一部の文字は(ピンイン入力方式、ibusを介して)正しく入力できることがわかりました。お気に入り:

起 度 顿 客

彼らはすべて彼らのピンインに対応しています。しかし、各文字の後に自動生成されたスペースがあります(私が入力したのではありません)。

「启、杜、盾、刻」と入力しようとすると、上記の4つの漢字と同じピンインがあります。私が得た:

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

私の経験では、コード変換が完全に混乱している場合。ピンインを入力すると、中国語のように見えるが実際にはそうではなかった有線の文字がいくつか表示され、入力したピンインに対応することはありません。

今回は少し違います。システムで生成されたスペースを使用して一部の文字を正しく入力でき、他の文字は判読できません。

回答:


5

基本的に、これはあなたに設定されているロケール、の間のミスマッチの問題である可能性がありUTF-8、かつで符号化することができるあなたの中国人キャラクターファイルのエンコーディング、gbkgb2312gb18030、またはBig-5

上記のすべてのコードするものがある非互換を持ちますUTF-8

今、gbkあなたのファイルのエンコーディングであると仮定しましょう。そのため、ファイルの内容を表示しようとすると、gbkエンコードされたファイルはファイルとして解釈され、意味UTF-8不明なものになります。

これが解決策です。

  • を使用しluitます。(推奨)

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

    luit -encoding gbk cat a_chinese_file.txt

使用されているほとんどの(すべてではないにしても)エンコーディングはと互換性があるためASCII、およびの文字だけが必要なASCII場合は、次の2つの方法を使用できます。

  • 端末のエンコーディングを変更する

    この方法では追加のパッケージをインストールする必要がないため、それを検討することができます。

  • ロケールを変更する

    しかし、これには対応するロケールをインストールする必要があると思います。


上記の中国語エンコーディングに関する詳細。

  • gbkgb2312gb18030簡体字中国語のエンコーディングです。

    ファイルがどのエンコーディングを使用しているかわからない場合は、それを想定してくださいgb18030

    各エンコーディングに含まれる文字の数は、この次の:gb18030> gbk> gb2312。そして、優れたエンコーディングは以下のスーパーセットです。

  • Big-5 繁体字中国語のエンコーディングです。

さらに、簡体字中国語のエンコーディングは、CP936(コードページ936、この名前はWindowsに由来すると思います)と呼ばれることもあります。


端末の問題については、ファイルがローカルコンピュータにあるかのように端末で中国語の文字を正しく表示できますが、リモートマシンにscpすると、文字が認識できなくなります。
Zen

ちなみに、luitコマンドを実行すると、「警告:ロケールを設定できませんでした。セグメンテーションエラー」
Zen

@Zenでエンコードされていないファイルを処理するには問題が多すぎますUTF-8。そして、私が提案するのは、中国語の文字ファイルをエンコードするUTF-8ように変換することです。その後、すべてがうまくいくはずです。
pallxk 14

あなたはluitがそれを変換できることを意味しますか?
Zenの

luitできません。他のいくつかのツールを使用します。Linuxで使用する特定のツールがわかりません。Windowsでは、を使用できますNotepad++
pallxk 14


-1

2つのファイルを次のように変更する必要があると思います

1)で /etc/default/locale

LANG=" en_US.UTF-8"
LANGUAGE=" en_US:en.UTF-8"

2)で ~/.pam_environment

LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8

3)再起動

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.