web-dev-qa-db-ja.com

LinuxコンソールでUTF-8サポートを有効にするにはどうすればよいですか?

現時点では、次のようになっています。

enter image description here

12
Mihai

確かに(グリフの数には制限がありますが、ロケールがUTF-8エンコーディングを使用しているようです)。

私はこれをテストに使用します:

#!/bin/sh
# send character-string to enable UTF-8 mode
if test ".$1" = ".off" ; then
    printf '\033%%@'
else
    printf '\033%%G'
fi

(「utf8」と呼ぶ)、「utf8 on」はエンコーディングをオンにします。

pstreeで指定した例を使用して、スクリプトを実行する例afterを次に示します(前に、質問と同じ種類の出力) ):

screenshot after "utf8 on"

コメントで述べたように、スクリプトがありますunicode_startmoreを実行しますが、提起された質問に対処するために必要なのは、例として使用されている小さなスクリプトだけです。

別のコメントへの対応:少なくとも私のシステム(および質問に示されているスクリーンショット)では、pstreeで使用されるすべての文字が、LinuxのUnicodeサポートにデフォルトで使用される512グリフフォントで提供されています。コンソール。

参考文献:

6
Thomas Dickey

localesパッケージがインストールされていることを確認してください

dpkg -l locales

そうでない場合は、インストールしてください

apt-get install locales

ルートとして、次のように入力します

dpkg-reconfigure locales

上/下矢印キーでそのリストをナビゲートできます。たとえば、en_US-UTF-8を選択します

次の行を追加して、.bashrcを編集します。

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

localecommandを実行すると、出力は次のようになります。:

LANG=en_US.UTF-8
LANGUAGE=en_US:en
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=
13
GAD3R

CHARMAP=UTF8/etc/default/console-setupを設定します。

その後、systemctl daemon-reload && systemctl restart console-setup.serviceを実行します。

2
alecov