很多時候,利用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 的設定: