2015年8月15日 星期六

[Ubuntu] 14.04如何設定語系locale

最簡單的設定
1.先檢查是否有安裝中文字型

locale -a

若只出現預設的C或POSIX,再執行以下步驟

2.sudo vi /var/lib/locales/supported.d/local
zh_TW.UTF-8 UTF-8
en_US.UTF-8 UTF-8
zh_TW BIG5

3.產生中文語系檔,以下指令可生成中文Big5及UTF8語系檔
sudo locale-gen zh_TW zh_TW.UTF-8

4.若只是想更改自己帳號的設定
vi ~.bashrc
在最後一行輸入
export LANG=zh_TW.UTF-8
export LC_ALL=zh_TW.UTF-8
如此一來,利用遠端連線軟體登入,就可以正常顯示中文
有些windows系統的遠端連線軟體預設是採big5連線,此時亦可改成
export LANG=zh_TW.big5
export LC_ALL=zh_TW.big5
或是修改該軟體的偏好設定,反正編碼要對應一致

5.若是想修改全域設定,就將第4點新增的內容加入以下任一設定中
sudo vi /etc/enviornment
或是
sudo vi /etc/default/locale

6.登出後再登入,修改的設定就會生效

其實儘管將語系設定為zh_TW.UTF-8,在伺服器本機tty1~tty6下中文字仍然顯示亂碼,那是因為 Linux 主機的終端機介面環境下是無法顯示像中文這麼複雜的編碼文字, 所以就會產生亂碼了。而如果用其他主機並以pietty等遠端連線軟體登入時,設定好的中文語系才會正常顯示。
或許有人會覺得那改語系好像改假的似的,那就換個角度想:首先,畢竟是伺服器,很少人會真正坐在伺服器前輸入中文打指令吧!再者,若是在伺服器端另外安裝中文顯現套件(譬如zhcon),的確可以顯示中文,但相對的又耗損了伺服器的效能。

所以有的人乾脆就使用英文的語系
1.裝上英文語系
sudo locale-gen zh_US.UTF-8

2.把英文語系寫入
sudo vi /etc/default/locale
(--修改程以下內容--)
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
LC_ALL="en_US.UTF-8"


註:Ubuntu16.04的語系設定有些不一樣,請參考「Ubuntu16.04設定locals語系



參考網頁:

沒有留言:

張貼留言