2012-09-29 201 views
34

例如,我的終端做到這一點:爲什麼我的終端不能正確輸出unicode字符?

$ 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= 
+0

什麼操作系統您使用的?對於OS X嘗試:終端 - >首選項 - >高級 - >字符。編碼:UTF-8 – by0

+0

除op系統外,還需指定您使用的終端仿真器程序(例如,gnome-terminal,xterm或其他列出的[最佳Linux終端仿真器?](http://superuser.com/ questions/80506)),以及選擇什麼字符編碼(例如Unicode UTF-8)和字體。在我的Ubuntu 12.04 linux系統上使用gnome-terminal和UTF-8以及Monospace Bold,頭骨和交叉骨頭看起來沒問題。 –

+0

我也使用Gnome Terminal ...那麼我在哪裏更改這些設置?嗯....我想知道運行'locale'的臉是否顯示'LANG = C'是問題...嗯。 – trusktr

回答

7

我想通了。我必須確保我在中設置了/etc/rc.confLANG="en_US.UTF-8",並在/etc/locale.conf中註冊,然後註銷並重新登錄並運行。我的終端現在正確顯示unicode。

+9

即使我的語言環境已經正確,但對我而言並不適用。 –

+3

這些天,每個人都在轉向systemd。如果你使用systemd,使用rc.conf將不會執行任何操作。 – trusktr

+0

@trusktr沒有rc.conf!只是一個rc.local! –

8

如果您不能更改/etc/*文件,您可以手動設置gnome-terminal菜單Terminal | Set Character EncodingUnicode(Utf-8)

+4

如果我可以更改/ etc/*,我現在該怎麼做?! –

2

我更新了我的語言環境使用以下命令:

sudo update-locale LANG=en_US.UTF-8 LANGUAGE=en.UTF-8 

然後重新啓動:

sudo reboot 
相關問題