在linux下輸入或顯示中文或通過secureCRT串連linux,常有中仍亂碼,關鍵是要設定中文字元集,通過locale這個變數。
Locale是軟體在運行時的語言環境,它包括語言(Language),地區(Territory)和字元集(Codeset)。一個locale的書寫格式為:語言[_地區[.字元集]]。與中文輸入關係最密切的就是LC_CTYPE,LC_CTYPE規定了系統內有效字元以及這些字元的分類;LC_CTYPE:使用所指定地區的字元集(字母、數字、標點符號等)。
設定locale就是設定12大類的locale分類屬性,即12個LC_*。除了這12個變數可以設定以外,為了簡便起見,還有兩個變數:LC_ALL和LANG。它們之間有一個優先順序的關係:LC_ALL > LC_* >LANG。可以這麼說,LC_ALL是最上級設定或者強制設定,而LANG是預設設定值。
1、如果你需要一個純中文的系統的話,設定LC_ALL= zh_CN.XXXX,或者LANG=zh_CN.XXXX都可以。
2、如果你只想要一個可以輸入中文的環境,而保持菜單、標題,系統資訊等等為英文介面,那麼只需要設定LC_CTYPE=zh_CN.XXXX,LANG=en_US.XXXX就可以了。這樣LC_CTYPE=zh_CN.XXXX,而LC_COLLATE=LC_MESSAGES=……=LC_PAPER=LANG=en_US.XXXX。
3、假如你什麼也不做的話,也就是LC_ALL,LANG和LC_*均不指定特定值的話,系統將採用POSIX作為lcoale,也就是C locale。
LANGUAGE是設定應用程式的介面語言。而LANG是優先順序很低的一個變數,它指定所有與locale有關的變數的預設值
export LC_ALL="zh_CN.gbk"
setenv LANG zh_TW.utf-8
zh_CN.UTF-8
可以在profile中設定,以達到永久生效。
參考
【1】 http://hi.baidu.com/edeed/blog/item/2e99a14440bd8884b2b7dcb1.html
【2】 http://latex.yo2.cn/articles/linux-locale.html
【3】 寫的也不錯,關於locale
http://space.itpub.net/519536/viewspace-612421