关于ASCII码表
ASCII 码表列出 0 到 127 的十进制、十六进制、八进制与二进制写法,以及每个码值对应的字符,方便随查随用。0 到 31 加上 127 是控制字符,在屏幕上看不见却各有明确作用:LF 换行、CR 回车、TAB 制表、NUL 空字符,解析文本和二进制协议时经常遇到。32 到 126 是可打印字符,包含空格、数字、大小写字母与常见标点。表只到 127,因为 128 到 255 属于扩展区,各家编码解释并不一致,中文这类多字节字符也不在这张表内。所有数据随页面加载完成,搜索与复制都在本地进行。
ASCII码表怎么用
- 在搜索框输入字符,比如 A 或空格,定位它对应的码值。
- 也可以直接输十进制或十六进制码值,例如 65、0x41,反查字符。
- 按控制字符名搜索 LF、CR、TAB,查看它们的十进制与十六进制写法。
- 点行内数值即可复制,粘贴到代码里替换硬编码的数字。
- 对照二进制列检查位运算结果,确认取位与掩码是否符合预期。
使用提示
- 回车换行在 Windows 上是 CR LF 两个字节,Linux 只用 LF,跨平台读文件常因此多出 ^M。
- 大小写字母相差 32,也就是二进制第 6 位,做大小写转换可以用位运算而不是查表。
- UTF-8 兼容 ASCII 前 128 个码值,但处理中文时按字节切分容易截断字符,要按字符边界来。
ASCII码表常见问题
为什么 0 到 31 和 127 看不到字符?
这段码值是控制字符,最初是给电传打字机下指令用的,不是用来显示内容的。NUL 表示空、LF 换行、CR 回到行首、TAB 跳到下一个制表位、BEL 让终端响铃。现在它们仍然出现在文本和网络协议里,直接用编辑器打开会显示成空行或乱码,需要用转义写法查看。
扩展 ASCII 128 到 255 是什么?
128 到 255 属于扩展区,标准 ASCII 只定义了 0 到 127。这段空间由各家编码自行分配:Latin-1 把每个码值直接映射到西欧字符,GBK 则用双字节表示汉字,同一个字节值在两种编码下含义完全不同。这也是同一段文本换编码后变成乱码的根本原因,读数据前必须先确认编码。
中文汉字在这张表里能查到吗?
查不到。汉字属于多字节编码,UTF-8 下一个常用汉字占 3 个字节,GBK 下占 2 个字节,都不落在 0 到 127 的单字节范围内。所以处理中文时要按字符或编码单元切分,不能按单字节取下标,否则会把一个汉字截成半个,产生乱码或直接报错。
在代码里怎么表示控制字符?
多数语言支持转义写法:换行写 \n、回车写 \r、制表写 \t、空字符写 \0,也可以用十六进制转义如 \x0a。Python 和 JavaScript 都支持这类写法,PHP 需要双引号字符串才解析转义。写正则或做协议解析时,直接写转义比粘贴不可见字符更可靠,也便于别人阅读。