ASCII 表参考
你输入的每个英文可打印字符,在七位 ASCII 标准中都映射到 32 到 126 之间的数字。32 以下和 127 是控制码,LF、CR、ESC、DEL 等,在调试串行协议或修复行尾时仍然重要。本参考表列出 0 到 127 的每个码位,并附上十进制、十六进制、八进制、二进制和 HTML 实体形式。
如何使用 ASCII 表
-
1
扫描需要的字符所在行
可按字母、符号或码位名称搜索。控制码按三字母助记符列出。
-
2
横向读取所需编码
十进制适合人类友好的代码,十六进制适合源代码,二进制适合协议工作,HTML 实体适合标记。
-
3
复制任意单元格
当你拿到十六进制转储或字节序列,需要知道它读起来是什么时很有用。
ASCII 的三个范围
| 范围 | 十进制 | 内容 |
|---|---|---|
| 控制字符 | 0-31, 127 | NUL、BEL、BS、HT、LF、VT、FF、CR、ESC、DEL 等 |
| 可打印字符 | 32-126 | 空格、标点、数字、A-Z、a-z |
| 扩展(非 ASCII) | 128+ | 取决于编码;ASCII 严格止于 127 |
仍然重要的控制码
- 0x00 NUL,C 中的字符串终止符,某些二进制格式中的填充。
- 0x07 BEL,让终端响铃。
- 0x08 BS,退格。
- 0x09 HT,水平制表符。
- 0x0A LF,换行,Unix 的换行符。
- 0x0D CR,回车;在 Windows 上与 LF 配对形成 CRLF。
- 0x1B ESC,启动用于终端颜色的 ANSI 转义序列。
- 0x7F DEL,最初用于在纸带上打孔删除;现在很少使用。
ASCII 与 Unicode
Unicode 保留了 ASCII 前 128 个码位的含义,UTF-8 也使用相同的单字节来编码这些值。因此,只包含 ASCII 字符的 UTF-8 文件与其 ASCII 表示逐字节相同。但并非所有字符编码都采用 ASCII 的字节值,EBCDIC 就是一个著名的反例。
常见转换
- 十进制转十六进制: 65(十进制) = 0x41 =
A - 十六进制转二进制: 0x41 = 0100 0001
- 十六进制转 HTML 实体:
A或A都渲染为A
常见问题
ASCII 是 7 位编码,因此一个字节的第八位可留给奇偶校验或扩展。128-255 属于“扩展 ASCII“变体(Latin-1、Windows-1252、MacRoman 等),它们彼此不兼容,这也是 Unicode 胜出的部分原因。
LF(0x0A)向下移动一行;CR(0x0D)把光标移回第零列。Unix 的换行符只有 LF;早期 Mac 曾经只用 CR;Windows 和 HTTP 头部使用 CR 后跟 LF(CRLF)。不匹配是系统间文本出现双倍行距或挤在一起的典型原因。
ASCII 大写字母位于 65-90,小写字母位于 97-122,两者正好相差 0x20。代码必须先确认某个字节确实表示 ASCII 字母,之后才能通过设置、清除或翻转 0x20 位来改变大小写。对任意字节直接执行 XOR 0x20 并不安全,因为数字、标点和控制值也会被改变。
有:文本文件中的 LF 和 CR,源代码和终端中的 HT 和 FF,ANSI 颜色序列中的 ESC,终端铃声和提醒中的 BEL。NUL 仍用于终止 C 字符串。其余大多是电传打字机时代遗留。
相关工具
BBCode 转 HTML 转换器
将 BBCode(论坛标记)转换为干净的 HTML。支持格式标签、列表、引用、代码、图片、链接和表格。
Base64 转 Hex 转换器
将 Base64 字符串转换为其底层字节的十六进制表示。适合检查令牌、密钥、证书和 JWT。
ASCII 转 Hex 转换器
将 ASCII 文本转换为 hexadecimal byte values。输出每个字符两个 hex digits,可用于 memory dumps、packet traces 或 firmware tables。
ASCII 转二进制转换器
将任意 ASCII 字符串转换为二进制表示。每个字符变成八位,以空格分隔,可直接粘贴到协议跟踪或作业中。
二进制转 ASCII 转换器
粘贴二进制(用空格分隔的字节或一长串比特),即可得到它所表示的 ASCII 文本。支持 7 位和 8 位编码。
二进制转十六进制转换器
将二进制输入转换为纯大写十六进制值。非 0 和 1 字符会被忽略,前导零不会保留。