目標:終端使用 less/more/grep 等命令正確顯示 GBK 編碼文件內容,vim 正確顯示 GBK 編碼文件漢字
症狀:
1. 系統自帶 gnome-terminal 在設置終端編碼為 GBK 後,能達到目標。
2. 使用 xshell 在 windows 平台上設置終端編碼為 default 時,ssh 登錄到 CentOS,能達到目標。
3. 在 screen 命令窗口內,無論終端還是 vim, 中文均顯示為亂碼,無法達到目標。
解決辦法:在 ~/.screenrc 中,添加下面兩句:
defencoding GBK
encoding UTF-8 GBK
我的猜測是 xshell、gnome-terminal 等終端能夠將自身編碼傳給系統,因此系統能夠對輸出自動進行轉碼。而 screen 屬於終端中的終端,它自身的編碼不是 GBK,導致傳給系統以後沒有對輸出進行轉碼。設置 screen 的編碼和轉換規則後,就 OK 了。