Linux作業系統下終端亂碼的終極解決方案 export LANG=zh_CN.UTF-8 export LANG=en_US

來源:互聯網
上載者:User

轉載:http://hi.baidu.com/xuehuo_0411/blog/item/98559cf46107573fbd3109f6.html

在使用linux的終端工具SecureCRT的時候,每次提交SVN想輸入中文日誌的時候總是輸不了中文。

svn ci -m "" 這時候兩個引號之間就是沒有辦法輸入中文。

後來跟其他同學請教,找了一個終極解決方案

要先保證SecureCRT是UTF8格式的,設定:選項-會話選項-終端-外觀的字元編碼,選擇utf-8

首先,在/home/yourname下面建立一個檔案.vimrc,然後這個檔案中寫入如下代碼

      1 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
      2 set termencoding=utf-8
      3 set encoding=utf-8
      4 set fileencodings=ucs-bom,utf-8,cp936
      5 set fileencoding=utf-8
      6 set nohls
      7 set nu
      8 filetype on
      9 syntax on
     10 set tabstop=4
     11 set shiftwidth=4
     12 set autoindent
     13 set smartindent
     14 set showmatch
     15 set ruler
     16

 

上代碼的大概含義就是終端支援UTF8,也就是可以支援中文。

然後再命令列執行如下命令

[yourname@root]$ export LANG=zh_CN.UTF-8

再試試

[yourname@root]$ svn ci -m "提交中文提示"

如果想SSH用戶端啟動的時候,就執行export LANG=zh_CN.UTF-8,需要在/home/yourname尋找.bash_profile檔案,然後用vim修改之

14:14 [x334@web2.dev.yourname]$ vim .bash_profile

      1 # .bash_profile
      2 
      3 # Get the aliases and functions
      4 if [ -f ~/.bashrc ]; then
      5     . ~/.bashrc
      6 fi
      7 
      8 # User specific environment and startup programs
      9 
     10 PATH=$PATH:$HOME/bin
     11 
     12 export PATH
     13 unset USERNAME
     14 export LANG=zh_CN.UTF-8

儲存後,重新啟動SSH用戶端,這樣以後每次啟動用戶端的時候就自動執行export LANG=zh_CN.UTF-8。

大功告成鳥。

Linux中使用export命令設定環境變數

 

下面複製一篇網上的文章

 

export LANG=zh_CN.UTF-8 
export LANG=en_US

===============================================================================================

===============================================================================================

初入linux的程式員們,經常會受到亂碼的問候。可謂“始亂終棄”。因為亂碼,並且最終放棄了linux的不在少數。好吧,言歸正傳,先看看各類亂碼是怎麼形成的。 

  中文字元亂碼 

  這種情況一般是安裝了中文控制端,但沒有啟用中文應用造成的。只需要啟動相應軟體即可,如zhcon。或者是啟用了相應軟體,但字元集不對,需設定相應字元集,例如export LANG=zh_CN.UTF-8 

  ORACLE安裝介面亂碼 

  雖說ORACLE支援多國語言,會根據環境變數自動選擇字元集,但中文安裝好像還有問題,不過10.2以後的版本好像沒有該問題了,具體可以執行命令export LANG=en_US來設定為英文字元集環境 

  英文字元亂碼 

  一般該字元亂碼多出現在cat了二進位的檔案時,因為二進位檔案中多有控制碼,會導致終端介面亂碼,通常解決方案是用reset終端複位命令解決問題 

  其他偽終端亂碼 

  有時是通過SSH進入遠程LINUX伺服器時,cat一個core檔案,並且用reset命令都不能成功,怎麼辦?很簡單,看以下實驗,首先cat一個python的編譯檔案 

  oracle@linux-suse:~> cat fibo.pyc 

  m? 

  {?鯡c@sd 

  Zd 

  ZdS(cCs:d\}}x'  jo G   }}qWdS(Nii(ii(tatbtn(RRR((tfibo.pytfibs 

  cCsIg}d\}}x0  jo" i    }}qW S(Nii(ii(tresultRRRtappend(RRRR((Rtfib2 s 

  N(RR(RR((Rt?s oracle@linux-suse:~> VT102VT102 

  \-bash: VT102VT102: command not found 

  oracle@linux-suse:~> 

  在SSH終端上看到是的亂碼,提示符都是亂的,可以用以下命令恢複 

  oracle@linux-suse:~> tput sgr0 

  亂碼問題產生的原因是SSH的問題,因為在其他終端下,cat用樣一個檔案,不會產生亂碼,於是實驗亂碼產生的原因 

  oracle@linux-suse:~> ^N 

  只要用ctrl+v,ctrl+n就使用螢幕亂碼,當然恢複後再實驗 

  oracle@linux-suse:~> echo -e '\xe' 

  螢幕再次亂碼,好,再恢複 

  oracle@linux-suse:~> echo -e '\xf' 

  以上是需要盲打的,因為屏上看到的是亂碼,最終問題產生的原因是十六進位字元E產生的,解決也很簡單,十六進位字元F即可

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.