关于在Centos7显示中文字符的问题

20190708 加深一下

在Securecrt里我们经常要用到自动登陆 :SSH—普通用户—ROOT用户
如果按下文配置的话,在SU成ROOT用户的时候会提示中文“密码:”,这就导致无法自动登陆为ROOT用户,所以我们要变通一下,方法如下
在普通用户的 .bash_profile 文件最下面加一行


export LANG=en_US.utf8

这样就可以直接使用Securecrt的自动登陆功能了!(见下图)

——————–分割线———————-

首先,我们要说Centos7这个版本和之前的版本有很多不同之处,中文字符支持这件事也是如此
1、在我负责的系统中,都是最小化安装,安装的时候就要安装中文语言支持包。
2、修改/etc/locale.conf为如下


LANG="zh_CN.UTF-8"

3、重启,再说一遍,必须重启系统,而不是用什么source的方法
4、重启登陆,不管用Securecrt,还是其他putty啥的,会发现之前显示正常的英文都变乱码了,但如果你在机器上插显示器,其实还是英文提示,如下图

看来,只有 Securecrt 或者 Putty 受影响了,所以我们要从软件上找原因,而不是从系统中找。我们以Securecrt为例,需要修改的地方如下

字体我们选用中文仿宋,字符编码,我们要选用UTF-8,因为Linux系统都是UTF-8编码。关闭设置后,重新登陆系统。我们已经能看到中文正常显示了,如下图,再啰嗦一下,如果这台服务器插上显示器,“ 总用量 ”那里不是中文,还是英文,从这里充分说明,目前还只是系统支持中文显示,而这种中文显示,是需要用客户端配合服务器端实现的。

5、再说说,如果在WIN上编辑了python程序,里面有中文,但上传到Centos7里却看到乱码的解决方法,首先你的Centos7必须按我如上操作,已经用Securecrt登陆后看的到中文了
(1)普及一下,既然大部分的Linux编码是UTF-8,那么大部分的中文WIN系统的编码是GBK
(2)我们在中文环境下写好的程序大多数也都是GBK编码的,所以,有些文章写了用如下转换方法可以在Linux上看到中文:


iconv -f gbk -t utf8 gbk.txt > gbk-utf8.txt

我测试过,发现还是不行,我推荐在WIN上生成文件的时候就是utf-8编码,我写程序用UltraEdit,另存为的时候是可以指定编码的,如下图

用rz命令上传到服务器以后,用vi命令就可以看到中文了。

6、说说自动登录脚本的问题,如果我们按如上设置了系统语言,那么之前的Securecrt自动登录脚本就不能用了,因为会有中文字符的 密码:,而且即使你在自动登录脚本那里设置了,也登陆不进去,这个是因为Securecrt这个程序本身支持字符的问题

那怎么办呢?不要着急,我们仅需要修改第一个登陆用户的.bash_profile文件,在最后加一句export LANG=en_US.utf8

然后退出登陆,再试试,是不是之前的自动登陆脚本又可以用了?

原创文章,转载请注明: 转载自混沌

本文链接地址: 关于在Centos7显示中文字符的问题