如何让 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文件,有没有其他的方法把 cygwin 1.7.15-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-8cygwin做了一个智能检测。

那么,我们把 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等都没有出现中文。



你可能感兴趣的:(linux,cygwin,编码,utf-8)