2009年5月15日

FreeBSD登入後中文亂碼問題

在 FreeBSD 中,雖然已經支援 Unicode(UTF-8) 了,但如果我們只有設定在 csh.cshrc 中,我們會發現登入後的訊息依然是亂碼,原因是在於登入時候的環境設定並沒有設定成 zh_TW.UTF8。

這意思是說,雖然我們在 csh.cshrc 裡面設定了環境是 zh_TW.UTF8,但在我們登入時,系統完成認證,並執行 SHELL 的時候,並沒有設定環境是 zh_TW.UTF8,因此這時候的訊息如果是 UTF-8 的編碼,會是亂碼的狀況。

解決辦法很簡單,我們在 /etc/login.conf 裡面加入相關設定,修改如下:
default:\
:passwd_format=md5:\
:copyright=/etc/COPYRIGHT:\
.....
:ignoretime@:\
:umask=022:


改成
default:\
:passwd_format=md5:\
:copyright=/etc/COPYRIGHT:\
.....
:ignoretime@:\
:charset=zh_TW.UTF-8:\
:lang=zh_TW.UTF-8:\
:umask=022:


修改完畢後,要記得執行如下指令,將設定寫入系統中:
# cap_mkdb /etc/login.conf

即可!