ASCII转文本转换器_支持十进制十六进制二进制码点互转

ASCII转文本转换器把一排数字码点还原成可读字符:十进制直接写、十六进制加 0x、二进制加 0b,空格或逗号都当作分隔符。它同时把控制字符、删除符与扩展区标注出来,方便你看清每一行到底对应什么。

文本框里按 Ctrl 或 Command 加回车立即转换;打开就带一组示例,清空再运行会提示先填码点。下方对照表默认显示 12 行,点「加载更多」看余下 2 行。

使用方法

  1. 打开页面就有一组完整结果:输入框里是「72 101 108 108 111」四个十进制码点,结果区已经列出每一行「码点 = 字符」以及最后一行拼出的「→ Hello」,不需要先填任何东西。
  2. 想换内容就改输入框:纯十进制直接写数字,十六进制在前面加 0x(例如 0x41 等于十进制的 65 即大写 A),二进制在前面加 0b(例如 0b1000001 也等于 65)。数字之间用空格或逗号隔开都行。
  3. 在文本框里按 Ctrl 或 Command 加回车会立即重新转换;清空输入框再点「立即转换」,页面会自动填回默认的那组示例,不会留空报错。
  4. 结果区第一行起是逐行对照,每一行都写「原始码点 = 字符」;最末一行用箭头引出把所有字符拼起来的最终文本,方便你一眼看到整段内容。
  5. 「复制结果」复制整段逐行文本,「复制对照表」复制下面那张码点表的制表符分隔版本,「导出 CSV」保存成带字节序标记的文件,Excel 双击不乱码。
  6. 字符显示会帮你标注边界:32 到 126 是常规可打印字符;0 到 31 与 127 是控制字符或删除符,会显示成 NUL、LF、DEL 这样的名字;128 到 255 属于扩展区,会直接显示对应字符。
  7. 本页不联网、不写本地存储,刷新即回到默认示例,所有数字都在你自己的浏览器里算。

这个ASCII转文本转换器能解决什么

ASCII转文本转换器解决的是「数字和字符对不上」的问题。调试协议、拆网络包、读串口打印、看老系统导出的码点列表时,最常碰到的就是一排用空格或逗号隔开的数字,肉眼很难直接读出它代表什么字。把数字粘进来,立刻变成人能读的句子,是这一类场景里最省事的一步。

第一类场景是协议与报文排查。很多接口文档把字段值写成十进制或十六进制码点,例如 0x48 0x65 0x6c 0x6c 0x6f 其实拼出来就是 Hello。逐个查表很慢,用这个工具一次贴一排,控制字符也会清楚地标成 LF、CR、DEL,不会混进正文里看走眼。

第二类场景是教学与记忆。记不住 65 是大写 A、97 是小写 a、48 是数字 0 时,输入这几个数看一眼就记住了;想知道某个不可见字符到底对应哪个码点,反向也成立——虽然本页专注「码点转字符」,但对照表把常见边界都列了出来。

第三类场景是批量清洗。一份数据里混着十进制和 0x 十六进制两种写法时,手工分辨很容易出错;本页统一按前缀识别进制,空格逗号都能分隔,长串也能一次转完,结果逐行对齐,后面接表格或脚本都方便。

码点、进制与字符映射的原理

一个 ASCII 码点本质就是一个 0 到 255 的整数,它对应 Unicode 前 256 个码位上的字符。本页先判断每个 token 的进制:以 0x 开头按十六进制解析,以 0b 开头按二进制解析,其余纯数字按十进制解析;解析完若不在 0 到 255 之间就直接报错,因为标准 ASCII 只覆盖这一区间。

字符显示分三档:32 到 126 是常规可打印字符,直接显示本身;0 到 31 与 127 是不可见的控制字符与删除符,用约定俗成的缩写(NUL、BEL、HT、LF、CR、DEL 等)显示,避免把不可见字符混进结果;128 到 255 是扩展 ASCII(严格说是 Latin-1 补充区),直接显示对应字符并标注为扩展区间,提醒你它不属于最初的 7 位 ASCII。

分隔符的处理很简单:输入先按空白与逗号切成 token,空串被丢弃,剩下的逐个解析。所以「72,101 108」和「72 101 108」得到的结果是一样的,不必纠结用哪种分隔。下面是本页用到的几个输入项与输出含义。

输入项含义写法影响
十进制直接写 0 到 255 的整数例如 65解析为对应字符 A
0x 十六进制以 0x 开头的十六进制例如 0x41等于十进制 65,即 A
0b 二进制以 0b 开头的二进制例如 0b1000001等于十进制 65,即 A
分隔符空格或逗号72 101 或 72,101只影响切分,不影响结果
输出字符每个码点对应的字控制符显示缩写最终文本由它们拼接

完整示例

默认示例输入是「72 101 108 108 111」,四个十进制码点依次解析为 H、e、l、l、o,逐行对照后由最后一行拼出 Hello。注意这里没有用任何十六进制或二进制,纯粹是最直观的十进制写法;如果你想验证进制识别,把输入改成「0x48 0x65 0x6c 0x6c 0x6f」会得到完全相同的 Hello。

72 = H
101 = e
108 = l
108 = l
111 = o
→ Hello

再举一个带控制字符的例子:输入「72 10 101」会得到 H、LF(换行控制符)、e,最终文本里 H 与 e 之间夹着一个不可见换行;对照表里 LF 那一行清楚标了它是控制字符,不会让你误以为是某个可见字母。

ASCII 码点对照表

下表共 14 行,覆盖控制字符、可打印边界、常见字母数字与扩展区起点。前 12 行默认显示,点工具区的「加载更多」看余下 2 行。每一行的「字符」列对可见字符显示本字,对控制字符显示约定缩写,对扩展区显示对应字符,与结果区的标注规则完全一致。

码点字符说明
0NUL控制字符 空
7BEL控制字符 响铃
9HT控制字符 制表
10LF控制字符 换行
13CR控制字符 回车
32(空格)空格,可打印与控制边界
33!可打印标点
480数字零
65A大写字母 A
97a小写字母 a
127DEL删除控制字符
128€扩展 ASCII 起点
200È扩展 ASCII 示例
255ÿ扩展 ASCII 上限

横向读这张表能得出一条实用结论:32 到 126 这一百来个位置才是真正「打得出来」的字符;在这之外要么是不可见的控制符,要么是扩展区字符。调试时若看到结果里出现 NUL、DEL 这类名字,说明原始数据混入了控制字节,而不是转换出了错。

结果边界与错误提示

常见问题

为什么 65 是大写 A 而 97 是小写 a?

这是 ASCII 表的固定编排:大写字母 A 到 Z 占 65 到 90,小写字母 a 到 z 占 97 到 122,数字 0 到 9 占 48 到 57。记住 65、97、48 这三个起点,整段字母数字区间就能推出来。

0x41 和 0b1000001 为什么都等于 A?

因为它们是同一个数的不同进制写法:0x41 是十六进制的 41,等于十进制 65;0b1000001 是二进制的 1000001,也等于十进制 65。本页按前缀识别进制,三种写法最终落到同一个码点。

结果里出现 NUL、LF 是什么意思?

这些是控制字符的缩写。NUL 是码点 0 的空字符,LF 是码点 10 的换行,CR 是码点 13 的回车,DEL 是码点 127 的删除符。它们本身不可见,本页用缩写显示,避免你误以为是某个可见字母。

128 到 255 的字符为什么叫扩展 ASCII?

最初的 7 位 ASCII 只有 0 到 127;后来把 128 到 255 这 128 个位置补成了扩展区(常对应 Latin-1)。它们能显示,但严格说已超出原 ASCII 范围,跨系统复制时要保证编码一致,否则字形可能错位。

空格和逗号都能分隔,会冲突吗?

不会。输入先按空白和逗号统一切分成 token,空串丢弃后再逐个解析,所以「72,101 108」和「72 101 108」结果完全一致,你用哪种分隔都行。

输入超出 255 会怎样?

直接报错并点名具体码点,例如「码点「300」超出 0-255 范围」。本页不做取模或截断,因为那样会悄悄给你一个完全不同的字符,反而误导调试。

为什么不用它做反向的字符转码点?

本页专注「码点转文本」这一方向;字符转码点、URL 编码、Base64 这类反向或别的编码场景,请用站内对应的编码工具,分工更清晰也更易维护。

导出的 CSV 为什么会带字节序标记?

带字节序标记(BOM)是为了让 Excel 在双击打开时正确识别 UTF-8,不会把中文或扩展字符显示成乱码;「复制对照表」则是纯文本制表符分隔,粘进表格软件同样会自动分列。

相关工具