如何讓 cygwin終端中顯示的中文改成英文
轉:http://blog.csdn.net/semilog/article/details/7870591
最新在用cygwin 在windows 下編譯u-boot,下了最新版的cygwin 1.7.15-1,結果裡面的有些提示顯示的是中文,如下圖:
這讓我感覺怪怪的,上網找方法,結果無果而終,因為之前裝的 cygwin 1.7.9-1顯示的是英文,沒有出現這個現象,所以對比兩個 cygwin的 etc裡面的檔案,結果發現在這個檔案( Cygwin/etc/profile.d/lang.sh)裡不一樣:
Cygwin 1.7.15-1
test -z "${LC_ALL:-${LC_CTYPE:-$LANG}}" && export LANG=$(/usr/bin/locale -uU)
Cygwin 1.7.9-1
test -z "${LC_ALL:-${LC_CTYPE:-$LANG}}" && export LANG=C.UTF-8
到這裡,那解決方法就很簡單了,把Cygwin 1.7.15-1 中的lang.sh檔案改成LANG=C.UTF-8問題解決,解決後後的圖
現在問題是解決了,那麼再來一下思維擴散吧,見如下兩個問題:
1. 除了改 lang.sh檔案,有沒有其他的方法把 cygwin 1.7.15-1中顯示的中文改成英文?
2. 能不能把 cygwin 1.7.9-1中顯示的英文改成中文?
呵呵,下面就一起看一下吧。
1.
只要看一下lang.sh檔案中對應的這句:
export LANG=C.UTF-8
在bash指令碼中定義一個 LANG 的變數,值為 C.UTF-8
那麼,我們就可以在 cygwin.bat 中的bash --login –i 前一行加上一句:
set LANG=C.UTF-8
bash --login –i
即可解決問題。
2. 能不能把 cygwin 1.7.9-1中顯示的英文改成中文?
對於這個問題,還是從那個語句出發
LANG=$(/usr/bin/locale -uU)
中的 /usr/bin/locale –uU 是什麼意思呢?在終端中輸入locale –uU,如下
嘿嘿,其實對於中文系統來說就是zh_CN.UTF-8,cygwin做了一個智慧檢測。
那麼,我們把 cygwin 1.7.9-1中的lang.sh LANG=C.UTF-8改成LANG=$(/usr/bin/locale -uU)看看出現什麼結果。
我改了一下,結果出現下圖的結果:
會發現也出現了中文了,但同樣,如果在cygwin.bat中的話,那就不能寫成:
set LANG=$(/usr/bin/locale -uU)
而要寫成:
set LANG=zh_CN.UTF-8
基本上分析完了,但是還有一個遺留問題存在就是第二個問題,改成中文後,只有一部分出現了中文,如上圖,而下圖的 leaving directory等都沒有出現中文。