windows下xshell远程登录linux主机中文乱码的解决办法

windows下xshell远程登录linux主机中文乱码的解决办法

出于方便我们经常在windows主机中使用xshell来远程登录linux主机,这个时候如果主机是中文版,换句话说要显示中文的话有可能会遇到乱码问题,关于xshell下显示linux主机乱码的解决办法有两种:

一是修改linux主机:

vim /etc/sysconfig/i18n

LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"

把i18en中的内容替换成以上四行就可以了。

以上这个方法当然可以解决问题,不过我们要想一想原理是什么为什么能解决问题。

首先原来的i18n是这样的:

LANG="zh_CN.UTF-8"
SYSFONT="latarcyrheb-sun16"

就是说它默认支持的是utf-8的编码,现在你的xshell显示中文乱码,改成gb2312的就好了,这就说明你的xshell在登录的时候默认显示gb2312,因此utf-8的linux主机中的中文才会显示成乱码,所以这样也能解决问题但是如果又有一台windows主机登录这台linux也是中文乱码难道又要改linux的编码吗?这样的话到底是改成utf-8还是gb2312呢,岂不是乱套了?所以这个方法不能从根本上解决问题。

方法二:修改xshell(linux主机的编码始终不变)

xshell中文编码设置
输入:       locale
输出 :    LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

说明系统的中文编码是采用utf8的,那么为了在xshell中正常的显示中文,我们要把xshell编码方式改成utf8,

[文件]-->[打开]-->在打开的session中选择连接的那个 ,点击properties -> [Terminal ] ,在右边的translation(我的是encoding,就是改个编码而已)先选择utf8就可以啦.

也就是说首先查看linux主机的编码方式(locale),然后把xshell中这个link(连接)属性中的编码改成与主机一样的就行了。这个方法才是正确的,这样就是有一万台编码方式各不相同的windows xshell登录到同一台linux上也不会有乱码问题了。

(不过这个时候就不能使用临时连接了,要创建一个连接session然后改这个session的属性,不过也方便至少解决乱码问题的同时,下次登录不用输入IP地址了直接双击session就可以了)

 

当然啦以上是针对登录编码方式不同的linux主机来说的,但是linux主机的编码方式一般都是utf-8的,所以啊我们也没有必要这么麻烦直接把你的xshell默认编码设置成utf-8的就可以了,以后无论登录哪台主机都会以utf-8为默认编码来显示了,这样就不用每次都设置了,也不用每次都建立一个link连接了。

你可能感兴趣的:(windows下xshell远程登录linux主机中文乱码的解决办法)