在 Linux 下使用 SecureCRT 出现乱码,通常不是 SecureCRT 本身坏了,而是 字符编码不一致 或 终端类型不匹配 导致的。下面按最常见原因给你排查思路。
Linux 服务器默认一般是 UTF-8,而 SecureCRT 默认可能是 GBK。
解决方法:
这是 90% 乱码问题 的原因。
确认服务器字符集:
locale
正常应为:
LANG=en_US.UTF-8
# 或
LANG=zh_CN.UTF-8
如果是:
LANG=C
LANG=POSIX
或 GBK,就可能乱码。
export LANG=zh_CN.UTF-8
编辑:
vim ~/.bashrc
加入:
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
然后:
source ~/.bashrc
SecureCRT 默认终端类型可能是 vt100,部分 Linux 程序显示异常。
xterm 或 linux推荐:
xterm
即使编码正确,字体不支持中文也会显示为方块。
有些老系统、老日志是 GBK 编码,在 UTF-8 终端下会乱码。
file filename
iconv -f gbk -t utf-8 filename -o newfile
vim ~/.vimrc
加入:
set encoding=utf-8
set fileencodings=utf-8,gbk
| 项目 | 建议值 |
|---|---|
| SecureCRT 编码 | UTF-8 |
| Linux LANG | zh_CN.UTF-8 |
| TERM | xterm |
| 字体 | 支持中文的等宽字体 |
| 文件编码 | UTF-8 |
SecureCRT 乱码 99% 是编码问题,先改 SecureCRT 的字符编码为 UTF-8,再确认服务器的 LANG 是 UTF-8。
如果你愿意,可以把以下信息发我,我可以精准定位:
locale 输出