IT

解決在Putty連上Linux時顯示亂碼的問題

很多時候,利用Putty或SSH連線到Linux,並且使用基於文字的使用者介面時會出現顯示亂碼的情況,如下:

帶亂碼的畫面

要解決這個問題有以下的方法。

通常,因為這類程序是基於 ncurses (new curses) API,所以只要在SHELL中輸入:

export NCURSES_NO_UTF8_ACS=1
正常的畫面

如想每次登入都有效,只要把上面的代碼加到 bashrc 或 bash profile 或者 .zshrc。例如加到以下文件:

# 針對個別用戶並使用BASH SHELL
$ vi ~/.bashrc
# 針對個別用戶並使用ZSH SHELL
$ vi ~/.zshrc
# 針對所有使用BASH SHELL的用戶
$ vi ~/.bashrc
# 針對所有使用ZSH SHELL的用戶
$ vi /etc/zsh/zshrc

# Add the following line:
export NCURSES_NO_UTF8_ACS=1

另外,Putty 及 Linux 設定也重要(可能關乎UNICODE吧),請確保Linux中的Locale是支持UTF8,例如:

$  locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
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=

和 Putty 的設定:

發表回覆

你的電郵地址並不會被公開。 必要欄位標記為 *