たとえば、私の端末はこれを行います:
$ echo -e "\xE2\x98\xA0"
���
私はこれをすることを期待しています:
$ echo -e "\xE2\x98\xA0"
☠
どうして?端末に適切なUnicodeシンボルを出力させるにはどうすればよいですか?
Arch LinuxでGnome 3のターミナルを使用しています。
locale
の出力は以下を示します。
LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
私はそれを考え出した。 LANGUAGE="en_US.UTF-8"
に/etc/rc.conf
を設定し、LANG="en_US.UTF-8"
に/etc/locale.conf
を設定してから、ログアウトして再度ログインし、機能することを確認する必要がありました。私の端末は現在ユニコードを正しく表示しています。
_/etc/*
_ファイルを変更できない場合、手動で_gnome-terminal
_メニューTerminal
| _Set Character Encoding
_をUnicode(Utf-8)
に設定できます
次のコマンドでロケールを更新しました。
Sudo update-locale LANG=en_US.UTF-8 LANGUAGE=en.UTF-8
次に再起動しました:
Sudo reboot