ssh远程连接服务器出现中文乱码主要分为两种:

1、命令行输出的中文有乱码

比如ll输出的月份,ibus等命令输出的信息

2、vim打开文件,文件显示乱码

解决命令行输出中文有乱码

1、查看使用的XShell活MobaXterm等远程连接软件的会话属性。

以XShell为例:文件->当前会话属性/默认会话属性->终端->编码,设置成Unicode(UTF-8)。

2、进入服务器,查看服务器默认语言属性

以Centos系统为例,其他linux系统类似。

使用命令locale或echo $LANG,可以查看当前系统使用的语言以及编码,我这边原本是LANG=zh_CN。

使用命令export LANG=zn_CN.UTF-8可以零食在当前会话中改变服务器编码

或者直接编辑文件~/.bash_profile,修改或加入export LANG=zn_CN.UTF-8,在当前用户下永久将服务器编码都改成zn_CN.UTF-8。

检测是否成功,输入ll、ibus等命令查看是否还有乱码

自己输入中文,看看是否显示正常,并且在删除输入的时候,能按照宽字符处理,将一整个中文字符删除。

解决vim打开的文件中文乱码问题

在~目录下创建或修改.vimrc文件,修改或添加以下几行。一般来说这里的encoding和termencoding保持一致,且为utf-8、gbk、gb2312、gb18030中的一个就可以了,我暂时不清楚写哪个比较好,既然utf-8可以,那就用utf-8吧。

" 单个双引号为.vimrc的注释符

" 设置vim打开的编码格式

set encoding=utf-8

set fileencodings=ucs-bom,utf-8,cp936,gb18030,latin1

set termencoding=utf-8

" tab替换成空格,默认为8个

set expandtab

" tab替换成的空格数改成4个

set ts=4

" 设个好像是显示时空格对其的设置

set shiftwidth=4

" 语法高亮

syntax on

" 显示行数

" set nu

另外,如果vim打开文件乱码,cat输出文件不乱吗,可以尝试在vim打开的文件内进行以下操作

:e ++enc=utf8

或者

:e ++enc=zh_CN

应该有一个能把乱码变正常。

执行后文件变为readonly状态,需要修改的话,设置

:set noreadonly

参考链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: