web-dev-qa-db-ja.com

Linux仮想端末でUnicodeを表示する方法は?

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

私は ここのディスカッションで[〜#〜] jfbterm [〜#〜] などのインストールプログラムを読み、それが機能するので、あるかどうか疑問に思っていました追加のソフトウェアなしでユニコードを適切に処理するようにターミナルを構成する方法(コンソールフォント?).

Windows端末(gnome-terminal、xtermなど)では、次のようになります。

gnome-terminal

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

vt

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

jbfterm

これはlocaleの出力のスクリーンショットです。

locale

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

showconsolefont

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

19
bruno.braga

コンソールフォントは、フォントを最大512(私はそう思う)までの異なるグリフにロードできます。ただし、通常は256文字のみです。

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

ただし、複雑なスクリプト、または多くの異なる記号(日本語など)を必要とするスクリプトの場合、それを処理するために追加のレイアウトを使用する以外に可能性はありません。

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

CJKとカナは正方形に適合し、ラテン文字の2倍の幅です。これは、コンソールがそのままで処理できるものではありません。

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

かなでこのようなコンソールフォントを知りません。あなたはあなた自身を描くべきです(そうするためのツールがあり、ビットマップ日本語フォントのドットをコピーすることができます)。

また、iconvを使用して、かなをASCIIに変換できます。

5
Pablo Saratxaga

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

試すには、仮想コンソールで次のコマンドを発行してください:setfont Lat2-Terminus16

残りについては、ほとんどの最新のディストリビューションはすでに箱から出してそれをサポートしています。

3
Daniel B

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

一部のLinuxディストリビューションでは、これを自動化するためのunicode_startおよびunicode_stopスクリプトを提供しています。

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

Markus Kuhnの TF-8およびUnicode FAQ Unix/Linuxの場合 は非常に貴重です。

2
mr.spuratic