温馨提示×

linux securecrt为何乱码呢

小樊
41
2026-10-27 04:48:17
栏目: 智能运维

在 Linux 下使用 SecureCRT 出现乱码,通常不是 Linux 本身的问题,而是 终端编码设置不一致 导致的。下面按常见原因和解决方法说明:


一、最常见原因:字符编码不一致

1️⃣ SecureCRT 编码不是 UTF-8

解决方法:

  • 打开 SecureCRT
  • Options(选项) → Session Options(会话选项)
  • Terminal(终端) → Appearance(外观)
  • 将 Character encoding 改为:
    UTF-8
    
  • 重新连接

✅ 这是 90% 乱码问题的原因


2️⃣ Linux 系统语言环境不是 UTF-8

在 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


二、SecureCRT 字体不支持中文

即使编码对了,字体不对也会“方块/乱码”。

设置方法:

  • Session Options
  • Terminal → Appearance
  • Font(字体)建议选:
    • Courier New
    • 或 Consolas
    • 勾选支持中文的字体

三、远程主机和本地编码不同(如 GBK)

有些老系统(特别是 Windows 上跑的服务)是 GBK。

解决方案:

  • SecureCRT 编码改为:
    GB2312 / GBK
    
  • 或统一改成 UTF-8(推荐)

四、日志 / 程序输出本身是乱码

有时不是终端问题,而是:

  • 文件本身是 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 乱码 = 终端编码 ≠ 系统编码 ≠ 文件编码

如果你愿意,可以告诉我:

  • 使用的是 CentOS / Ubuntu / 麒麟 / 统信 哪个
  • 是 命令输出乱码 还是 日志文件乱码
  • SecureCRT 版本

我可以给你更精确的配置截图级指导。

0 踩