-bash: warning: setlocale: LC_CTYPE: cannot change locale (EN_US.UTF-8)  
  
把linux系统从中文设置英文字符集后发生以下报错  
  
首先本系统字符集为中文UTF-8  
  
[root@localhost ~]# more  /etc/sysconfig/i18n   
LANG="zh_CN.UTF-8"  
  
修改为英文UTF-8  
[root@localhost ~]# vim  /etc/sysconfig/i18n   
LANG="EN_US.UTF-8"  
  
source生效  
[root@localhost ~]# source   /etc/sysconfig/i18n   
LANG="EN_US.UTF-8"  
  
用secureCRT登陆后报以下错误  
  
Last login: Sat Oct 20 11:35:03 2012 from 162.16.16.144  
-bash: warning: setlocale: LC_CTYPE: cannot change locale (EN_US.UTF-8): No such file or directory  
-bash: warning: setlocale: LC_COLLATE: cannot change locale (EN_US.UTF-8): No such file or directory  
-bash: warning: setlocale: LC_MESSAGES: cannot change locale (EN_US.UTF-8): No such file or directory  
-bash: warning: setlocale: LC_NUMERIC: cannot change locale (EN_US.UTF-8): No such file or directory  
-bash: warning: setlocale: LC_TIME: cannot change locale (EN_US.UTF-8): No such file or directory  
  
  
重新修改为英文UTF-8字符集en为小写  
  
[root@localhost ~]# vim  /etc/sysconfig/i18n   
LANG="en_US.UTF-8"  
  
source生效  
[root@localhost ~]# source   /etc/sysconfig/i18n   
LANG="en_US.UTF-8"  
  
用secureCRT登陆,错误消失,看来是大小写的错误造成的找不到语言环境  
  
[root@localhost ~]#   
Last login: Sat Oct 20 11:35:03 2012 from 162.16.16.144  
  
执行locale命令可以看出错误所在  
  
[root@localhost ~]# locale  
LANG=en_US.UTF-8  
LC_CTYPE="en_US.UTF-8"  
LC_NUMERIC="en_US.UTF-8"  
LC_TIME="en_US.UTF-8"  
LC_COLLATE="en_US.UTF-8"  
LC_MONETARY="en_US.UTF-8"  
LC_MESSAGES="en_US.UTF-8"  
LC_PAPER="en_US.UTF-8"  
LC_NAME="en_US.UTF-8"  
LC_ADDRESS="en_US.UTF-8"  
LC_TELEPHONE="en_US.UTF-8"  
LC_MEASUREMENT="en_US.UTF-8"  
LC_IDENTIFICATION="en_US.UTF-8"  
LC_ALL=