远程登陆服务器的时候,设置了默认locale为en_US.UTF-8,然而debian还是输出POSIX,以至于xshell设置了正确的zh_CN.UTF-8,还是不能正确显示中文,具体表现是more可以显示中文,vi或者nano编辑的时候,中文是一堆乱码。google了很久找到如下解决方案:

LANG和LANGUAGE的区别: LANG - Specifies the default locale for all unset locale variables LANGUAGE - Most programs use this for the language of its interface LANGUAGE是设置应用程序的界面语言。而LANG是优先级很低的一个变量,它指定所有与locale有关的变量的默认值 设定了LC_ALL就不用设置其他的了,他会强制覆盖掉LC_*设置部分LC_*和LANG的话,没有设置的LC_*采用的是LANG的值。

在.bashrc增加下面代码

#display Chinese in English environment correctly  
export LANG="en_US.UTF-8"
export LC_CTYPE="zh_CN.UTF-8"