ASCII 与 HEX 十六进制模式切换方法
为什么需要两种模式
网络上传送的本质都是字节流,但在调试时人们通常有两种需求:
- ASCII 模式:发送和可读文本,接收也直接显示为字符串。适合调试基于文本的协议(HTTP 请求体、串口 AT 指令等)。
- HEX 模式:以十六进制数显示和输入原始字节。适合调试二进制协议(Modbus、私有协议数据包等),能精确看到每个字节的值,不会被"字符串"掩盖掉二进制数据的细节。
切换方式
在发送区和接收区的上方,各自有一个 ASCII / HEX 切换按钮,点一下就能切换。两边是独立的——你可以发送用 HEX,接收显示用 ASCII,根据需要自由组合。
两种模式的数据表示
以字符串 Hello 为例:
| 模式 | 显示内容 | 说明 |
|---|---|---|
| ASCII | Hello | 直接显示文本 |
| HEX | 48 65 6C 6C 6F | 每个字符转为十六进制字节,用空格分隔 |
注意:HEX 模式下,两个十六进制字符代表一个字节。48 就是 ASCII 字符 H,65 是 e,以此类推。
发送汉字
NetAssist 支持在 ASCII 模式下直接发送汉字。发送内容会按当前选择的编码(ANSI 或 UTF-8)转换为字节流发出。汉字的编码格式会影响接收方能否正确显示——这也是联调中常见的乱码原因之一。
关于编码选择,详见 ANSI 与 UTF-8 编码。
HEX 模式下如何输入
在 HEX 模式的发送框中,可以:
- 连续输入:
48656C6C6F(不带空格) - 带空格输入:
48 65 6C 6C 6F(渲染器会自动去除空格) - 混合输入也可以,工具会自动清理并解析。
输入过程中,NetAssist 会在下方实时显示解析后的字节数和对应的 ASCII 预览,方便核对。
实用场景
场景一:调试 Modbus TCP 指令
Modbus 是二进制协议,必须用 HEX 模式。比如发送一条读取保持寄存器的请求:00 01 00 00 00 06 01 03 00 00 00 0A,HEX 模式一目了然。
场景二:接收 HTTP 响应
发送请求可能用 HEX,但接收 HTTP 响应时切到 ASCII 模式,就能直接看到网页内容,方便分析。