在 Linux 下使用 SecureCRT 出现乱码,通常不是 Linux 本身的问题,而是 终端编码设置不一致 导致的。下面按常见原因和解决方法说明:
解决方法:
Options(选项) → Session Options(会话选项)Terminal(终端) → Appearance(外观)UTF-8
✅ 这是 90% 乱码问题的原因
在 Linux 终端执行:
locale
如果看到类似:
LANG=
LC_CTYPE="POSIX"
或不是 UTF-8,就会乱码。
解决方法:
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
永久生效(CentOS / RHEL):
localectl set-locale LANG=zh_CN.UTF-8
Ubuntu:
sudo dpkg-reconfigure locales
勾选 zh_CN.UTF-8
即使编码对了,字体不对也会“方块/乱码”。
设置方法:
Courier NewConsolas有些老系统(特别是 Windows 上跑的服务)是 GBK。
解决方案:
GB2312 / GBK
有时不是终端问题,而是:
检查文件编码:
file filename
转换编码:
iconv -f GBK -t UTF-8 file.txt > new.txt
| 检查项 | 正确设置 |
|---|---|
| SecureCRT 编码 | UTF-8 |
| Linux locale | zh_CN.UTF-8 |
| 字体 | 支持中文 |
| 文件编码 | 与终端一致 |
| SSH 连接 | 常规 TCP |
SecureCRT 乱码 = 终端编码 ≠ 系统编码 ≠ 文件编码
如果你愿意,可以告诉我:
我可以给你更精确的配置截图级指导。