在使用PuTTY通过串口(COM端口)连接设备时,乱码问题是用户最常遇到的困扰之一。无论是连接嵌入式设备、路由器还是工业控制器,字符显示异常(如问号、方框或错乱符号)都会严重影响调试效率。本文将从编码设置、波特率匹配、硬件连接等角度深入分析原因,帮助大家快速解决PuTTY串口乱码问题。

一、PuTTY串口乱码的常见原因

1. 终端编码与设备不匹配

PuTTY默认使用UTF-8编码,但部分设备(如老式路由器、单片机)可能输出GBK、ISO-8859-1等编码。若编码设置错误,字符会被错误解析,导致乱码。

2. 波特率、数据位、停止位等参数不一致

串口通信需严格匹配以下参数:

  • 波特率(如9600、115200)
  • 数据位(通常为8)
  • 停止位(通常为1)
  • 校验位(无、奇、偶) 若PuTTY与设备参数不一致,数据会因同步错误而乱码。

3. 硬件连接问题

  • 线缆质量差:劣质串口线可能导致信号干扰。
  • 接触不良:COM口或设备接口松动。
  • 电平不兼容:设备使用RS-232电平,而计算机为TTL电平(需转换器)。

4. 流控设置错误

若设备启用硬件流控(RTS/CTS),但PuTTY未正确配置,可能导致数据传输中断或乱码。

5. PuTTY版本过旧

旧版PuTTY可能存在编码兼容性问题,建议使用最新版本。

二、PuTTY串口乱码的解决方案

1. 检查并修改终端编码

打开PuTTY,选择Connection > Serial

Serial line中输入正确的COM端口。

点击Data选项卡:

Character set改为设备使用的编码。

若不确定设备编码,可尝试UTF-8Western (ISO-8859-1)

2. 确认串口参数

在PuTTY的Serial配置页面:

    • Speed (baud):与设备一致(如115200)。
    • Data bits:通常为8。
    • Stop bits:通常为1。
    • Parity:通常为None。
    • Flow control:根据设备需求选择(通常为None)。
  1. 保存配置(输入会话名称后点击Save)。

3. 检查硬件连接

  • 更换高质量串口线,确保无松动。
  • 若设备为TTL电平,需使用USB-TTL转换器(如CH340、CP2102)。
  • 尝试更换计算机COM端口或设备接口。

4. 关闭流控(如无需)

在PuTTY的Serial配置页面,将Flow control设为None,避免因流控不匹配导致乱码。

5. 更新PuTTY版本

访问PuTTY官网 ,下载最新版本(如0.78+),修复已知编码兼容性问题。

6. 测试其他终端工具

若问题依旧,可尝试使用其他串口工具(如Tera TermSecureCRTMobaXterm)验证是否为PuTTY特定问题。

三、高级排查技巧

1. 使用逻辑分析仪或示波器

若怀疑硬件信号问题,可用工具检测串口信号波形,确认波特率、数据位等参数是否正确。

2. 检查设备固件编码

部分设备(如嵌入式Linux)可通过命令查看输出编码:

cat /etc/locale.conf # 查看系统编码 

echo $LANG # 查看当前环境编码

若编码为en_US.UTF-8,PuTTY需设置为UTF-8;若为zh_CN.GBK,则需改为GBK。

3. 禁用Linux回显(如连接嵌入式设备)

在Linux设备中,关闭终端回显可能减少乱码风险:

stty -echo # 关闭回显


stty echo # 重新开启
标签: