Ubuntu下SecureCRT中文乱码排查与修复
一、先快速对齐两端编码
locale,常见正确输出包含 LANG=zh_CN.UTF-8 或 LANG=en_US.UTF-8。若不是,可临时导出:export LANG=zh_CN.UTF-8; export LC_ALL=zh_CN.UTF-8,或写入配置文件(如 /etc/default/locale)后重启。若系统缺少中文 UTF-8 语言包,执行 sudo /usr/share/locales/install-language-pack zh_CN.UTF-8 生成,再重启。二、常见场景与对应设置
| 场景 | Ubuntu 端 | SecureCRT 端 | 备注 |
|---|---|---|---|
| 服务器为 zh_CN.UTF-8 | locale 显示 zh_CN.UTF-8 |
Appearance 字符编码 UTF-8;Font 字符集 Chinese | 最通用、推荐 |
| 服务器为 en_US.UTF-8 | locale 显示 en_US.UTF-8 |
Appearance 字符编码 UTF-8;Font 字符集 Chinese | 英文环境也能正常显示中文 |
| 服务器输出为 GBK/GB2312(如部分交叉编译或旧系统) | 保持系统原有编码 | Appearance 字符编码 UTF-8;Font 字符集 GB2312 | 常见“问号/方块”时尝试 |
| 服务器缺少 zh_CN.UTF-8 语言包 | locale -a 看不到 zh_CN.UTF-8 |
先修复系统语言包 | 生成后重启再连 |
三、仍乱码时的进阶检查
locale -a 没有 zh_CN.UTF-8,安装并生成后再测试。四、可直接复制的最小修复命令
export LANG=zh_CN.UTF-8; export LC_ALL=zh_CN.UTF-8sudo /usr/share/locales/install-language-pack zh_CN.UTF-8sudo reboot/etc/default/locale:LANG="en_US.UTF-8",LANGUAGE="en_US:en"locale-gen -en_US:en 后重启