天天看點

解決SecureCRT中文顯示亂碼

以下兩步: 遠端linux機器。修改環境變量LANG。例如在~/.bash_profile裡面添加 export LANG=zh_CN.UTF8   重新登入之後生效。 現在檢視一下目前設定: myname@myhost~> locale   LANG=zh_CN.UTF8   LC_CTYPE="zh_CN.UTF8"   LC_NUMERIC="zh_CN.UTF8"   LC_TIME="zh_CN.UTF8"   LC_COLLATE="zh_CN.UTF8"   LC_MONETARY="zh_CN.UTF8"   LC_MESSAGES="zh_CN.UTF8"   LC_PAPER="zh_CN.UTF8"   LC_NAME="zh_CN.UTF8"   LC_ADDRESS="zh_CN.UTF8"   LC_TELEPHONE="zh_CN.UTF8"   LC_MEASUREMENT="zh_CN.UTF8"   LC_IDENTIFICATION="zh_CN.UTF8"   LC_ALL=   myname@myhost~>   本地windows機器。修改SecureCRT的設定。找到“選項”->“會話選項”->“外觀”: *    字元編碼設定為utf-8。 *    字型設定,選擇中文字型,例如新宋體。 設定完成。然後測試一下。
例如有兩個檔案。檔案名分别為“我的分析1.txt”和“我的分析2.txt”。但是檔案名(不是檔案内容)的編碼格式不同。 “我的分析1.txt”的UTF-8編碼為 e68891 e79a84 e58886 e69e90 31 2e 74 78 74    我       的     分      析  1  .  t  x  t     "我的分析2.txt"的gb2312(是gbk的一個真子集)編碼格式為 ced2 b5c4 b7d6 cef6 32 2e 74 78 74   我    的    分   析   2  .  t  x  t   第二,linux shell環境下,環境變量LANG決定了本地使用的字元集(通常情況,不考慮LC_ALL等)。包括檔案名和檔案内容的處理。例如,由于編碼不同,運作ls指令時,上面的兩個檔案名不能同時正确顯示。 在實際linux系統中,不應該如此靈活,而要固定一種檔案名編碼格式。例如,linux一般預設使用utf-8編碼檔案名。以下三種情況:   1> LANG=zh_CN.UTF8,設定shell程式使用UTF8編碼處理字元。是以,     “我的分析1.txt”能夠被正确處理,因為是UTF-8編碼。     “我的分析2.txt”是gb2312編碼,顯示為亂碼。   2> LANG=zh_CN.gb2312 或者 LANG=zh_CN.gb18030,那麼    “我的分析1.txt”顯示為亂碼。    “我的分析2.txt”能夠正确處理。   3> LANG=en,那麼ls檢視,兩個檔案名都不能正常顯示。 第三,SecureCRT用戶端的編碼設定要與遠端linux的編碼設定一緻,才可以正确顯示字元。

SecureCRT和遠端linux同時都使用gb2312編碼,也沒有問題。在這種情況下,字元都按照gb2312進行處理。但是,筆者在自己的windows上利用網絡鄰居檢視遠端的linux samba server時,看到的gb2312中文檔案名是亂碼。而用UTF-8就沒有問題。盡管通過設定samba能夠解決,但還是建議統一用預設的UTF8格式,比較保險。

VIM正确顯示和輸入中文的設定。編輯~/.vimrc,添加下面兩行

let &termencoding=&encoding  

set fileencodings=ucs-bom,utf-8,gbk  

這樣設定之後,utf-8和gb2312都能正确處理。

本文轉自 小強測試幫 51CTO部落格,原文連結:http://blog.51cto.com/xqtesting/1251140,如需轉載請自行聯系原作者

繼續閱讀