在 CentOS 中通过 SSH 连接后出现乱码,通常是字符集(编码)不一致导致的。可按下面步骤逐一排查和解决。
乱码常见表现:
???? 或乱码方块ls 中文文件名乱码vim 打开中文文件乱码如果你使用的是:
echo $LANG
正常应为:
zh_CN.UTF-8
# 或
en_US.UTF-8
locale
若看到:
LANG=
LC_ALL=
说明未设置。
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
vi /etc/profile
添加:
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
保存后:
source /etc/profile
或:
localectl set-locale LANG=zh_CN.UTF-8
locale -a | grep UTF-8
若无 zh_CN.utf8,安装:
yum install -y glibc-locale-source
localedef -i zh_CN -f UTF-8 zh_CN.UTF-8
vi /etc/ssh/sshd_config
确保:
# AcceptEnv LANG LC_*
AcceptEnv LANG LC_ALL LC_CTYPE
重启 SSH:
systemctl restart sshd
vi ~/.vimrc
添加:
set fileencodings=utf-8,gbk
set encoding=utf-8
LANG=zh_CN.UTF-8如果你能告诉我:
我可以给你更精确的解决办法。