Linux 仮想端末で Unicode を表示するにはどうすればいいですか?

Linux 仮想端末で Unicode を表示するにはどうすればいいですか?

Unicode でデータを読み取っても、Linux ターミナル (X ウィンドウなしで開く仮想ターミナル) では正しく表示されません。

私は読むここでの議論で次のようなプログラムをインストールすると、JFBTERM、そしてそれは動作するので、追加のソフトウェアなしでUnicodeを適切に処理するようにターミナルを構成する方法(コンソールフォント?)がないかどうか疑問に思っていました。

Windows ターミナル (gnome-terminal、xterm など) では次のようになります。

gnomeターミナル

仮想端末では次のようになります。

VT

JFBTERM を使用した仮想端末では次のようになります。

jbfterm

以下は出力のスクリーンショットですlocale:

ロケール

出力は次のとおりですshowconsolefont:

コンソールフォントを表示

デフォルトの仮想端末だけで同じことを達成できるかどうか知っている人はいますか?

答え1

実際これらの文字を含むフォントが必要です。たとえば、Arch Linux では を推奨していますLat2-Terminus16

試すには、仮想コンソールで次のコマンドを発行するだけですsetfont Lat2-Terminus16

残りについては、ほとんどの最新ディストリビューションで既にすぐにサポートされています。

答え2

コンソール フォントは、最大 512 個 (たぶんそれくらい) の異なるグリフのフォントを読み込むことができます。ただし、通常は 256 個のグリフのみです。

ラテン語、キリル語、または 200 個未満の複雑でない記号を使用するその他の言語を表示することは問題ありません。

ただし、複雑なスクリプトや、さまざまな記号を多数必要とするスクリプト (日本語など) の場合は、追加のレイアウトを使用して処理する以外に方法はありません。

ASCII と両方のかなセットに 512 の制限で十分な場合は、幅の問題があることに注意してください。

CJK と Kana は正方形に収まり、ラテン文字の 2 倍の幅があります。これは、コンソールがそのままでは処理できないものです。

古くて見苦しい「半角カタカナ」に頼ることもできますし(おそらくそのようなものの古いフォントを見つけることもできます)、コンソールを 40 列幅に設定してラテン文字をカナと同じ幅にすることもできます。

カナ付きのコンソール フォントは知りません。自分で描く必要があります (そのためのツールがあり、ビットマップ日本語フォントのドットをコピーするだけで済みます)。

また、iconvを使ってカナを ASCII に変換することもできます。

答え3

に加えてLANG/LC_ALLstty iutf8ターミナルに何をすべきかを指示するために、setfont便利なフォントとマッピングをロードする必要があるかもしれません。それでも問題が解決しない場合はCONFIG_NLS_xx、カーネル構成の設定を確認してください。自動的にロードされない場合は、必要になる場合がありますmodprobe nls_utf8(ただし、これは Unicode ファイル名にのみ必要だと思います)。

一部の Linux ディストリビューションではunicode_startunicode_stopこれを自動化するスクリプトが提供されています。

問題が発生する場合は、less環境変数LESSCHARSETを設定する(間違っている場合は設定を解除する)必要がある場合があります。

マルクス・クーンのUnix/Linux の UTF-8 と Unicode に関する FAQ非常に貴重です。

答え4

インストールすることでユニユーティリティユニコードを見つけることができます。

$ sudo apt-get install uniutils

次に以下を使用しますuniname:

ubuntu@shin-instance:~$ echo 岡田shin | uniname
No LINES variable in environment so unable to determine lines per page.
Using default of 24.
character  byte       UTF-32   encoded as     glyph   name
        0          0  005CA1   E5 B2 A1       岡      CJK character Nelson  621
        1          3  007530   E7 94 B0       田      CJK character Nelson 2994
        2          6  000073   73             s      LATIN SMALL LETTER S
        3          7  000068   68             h      LATIN SMALL LETTER H
        4          8  000069   69             i      LATIN SMALL LETTER I
        5          9  00006E   6E             n      LATIN SMALL LETTER N
        6         10  00000A   0A                     LINE FEED (LF)
ubuntu@shin-instance:~$

関連情報