使用方法
- 打开页面就有一组完整结果:输入框里是「72 101 108 108 111」四个十进制码点,结果区已经列出每一行「码点 = 字符」以及最后一行拼出的「→ Hello」,不需要先填任何东西。
- 想换内容就改输入框:纯十进制直接写数字,十六进制在前面加 0x(例如 0x41 等于十进制的 65 即大写 A),二进制在前面加 0b(例如 0b1000001 也等于 65)。数字之间用空格或逗号隔开都行。
- 在文本框里按 Ctrl 或 Command 加回车会立即重新转换;清空输入框再点「立即转换」,页面会自动填回默认的那组示例,不会留空报错。
- 结果区第一行起是逐行对照,每一行都写「原始码点 = 字符」;最末一行用箭头引出把所有字符拼起来的最终文本,方便你一眼看到整段内容。
- 「复制结果」复制整段逐行文本,「复制对照表」复制下面那张码点表的制表符分隔版本,「导出 CSV」保存成带字节序标记的文件,Excel 双击不乱码。
- 字符显示会帮你标注边界:32 到 126 是常规可打印字符;0 到 31 与 127 是控制字符或删除符,会显示成 NUL、LF、DEL 这样的名字;128 到 255 属于扩展区,会直接显示对应字符。
- 本页不联网、不写本地存储,刷新即回到默认示例,所有数字都在你自己的浏览器里算。
这个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 行。每一行的「字符」列对可见字符显示本字,对控制字符显示约定缩写,对扩展区显示对应字符,与结果区的标注规则完全一致。
| 码点 | 字符 | 说明 |
|---|---|---|
| 0 | NUL | 控制字符 空 |
| 7 | BEL | 控制字符 响铃 |
| 9 | HT | 控制字符 制表 |
| 10 | LF | 控制字符 换行 |
| 13 | CR | 控制字符 回车 |
| 32 | (空格) | 空格,可打印与控制边界 |
| 33 | ! | 可打印标点 |
| 48 | 0 | 数字零 |
| 65 | A | 大写字母 A |
| 97 | a | 小写字母 a |
| 127 | DEL | 删除控制字符 |
| 128 | € | 扩展 ASCII 起点 |
| 200 | È | 扩展 ASCII 示例 |
| 255 | ÿ | 扩展 ASCII 上限 |
横向读这张表能得出一条实用结论:32 到 126 这一百来个位置才是真正「打得出来」的字符;在这之外要么是不可见的控制符,要么是扩展区字符。调试时若看到结果里出现 NUL、DEL 这类名字,说明原始数据混入了控制字节,而不是转换出了错。
结果边界与错误提示
- 输入框被清空后再运行,会提示「输入为空:请填写一个或多个 ASCII 码点」,并自动把默认示例填回,不会留下空白结果。
- 某个 token 既不是纯数字、也不是 0x / 0b 开头时,提示会点名具体是哪个串:「无法识别的码点「xx」:只支持十进制数字、0x 开头的十六进制或 0b 开头的二进制。」
- 码点小于 0 或大于 255 时,提示点名具体值并说明范围:「码点「300」超出 0-255 范围:ASCII 仅支持 0 到 255 的整数。」不做截断或取模,避免给你一个错误字符。
- 控制字符(0-31)与 127 不会以「看不见的字母」形式混进文本,而是显示成 NUL、LF、DEL 等缩写,保证结果所见即所得。
- 扩展区 128-255 直接显示对应字符并标为扩展,提醒它不属于最初的 7 位 ASCII,跨平台复制时编码要一致,否则可能显示成别的字形。
- 结果区与错误区都带 role="alert",屏幕阅读器会在内容变化时播报;所有数字仅在本地计算,不联网也不写存储。
- 对照表 CSV 导出带字节序标记,Excel 双击不乱码;「复制对照表」是制表符分隔文本,粘进表格软件会自动分列。
- 十六进制与二进制前缀只认小写 0x / 0b 及大写 0X / 0B,写错成单 x 或单 b 会被当成无法识别的码点报错,不会静默当成十进制。
常见问题
为什么 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,不会把中文或扩展字符显示成乱码;「复制对照表」则是纯文本制表符分隔,粘进表格软件同样会自动分列。