Skip to main content
CheckTown
开发工具

ASCII 表:完整的字符参考

发布于 阅读约 5 分钟
本文目录

什么是 ASCII?

ASCII(美国信息交换标准代码)是一种于 1963 年发布的字符编码标准,为 128 个字符分配了数值。它包括 33 个控制字符(编码 0-31 和 127)、一个空格字符(编码 32),以及 94 个可打印字符,涵盖字母、数字和标点符号。

ASCII 成为现代文本编码的基石。Unicode 的前 128 个码位与 ASCII 完全相同,从而保证了向后兼容。每一位程序员在处理字符操作、二进制协议或数据校验时,都会遇到 ASCII 值。

ASCII 编码的工作原理

ASCII 使用 7 个比特来表示每个字符,恰好可以表示 128 个唯一值(0 到 127)。该编码被划分为控制字符、可打印字符,以及数字、大写字母和小写字母等有序的区段。

  • 控制字符(0-31、127)—— 不可打印的编码,如 NULL(0)、TAB(9)、LF(10)、CR(13)和 ESC(27),用于控制文本处理
  • 可打印区段(32-126)—— 空格(32)、数字 0-9(48-57)、大写 A-Z(65-90)、小写 a-z(97-122)以及标点符号
  • 设计规律 —— 大写字母和小写字母恰好相差 32(第 5 位),使大小写转换成为单个比特运算

免费试用 —— 无需注册

浏览 ASCII 表 →

何时使用 ASCII 对照表

手头备有一张 ASCII 表,对许多常见的编程和调试任务都必不可少。

  • 字符校验 —— 在清洗输入或构建解析器时,检查某个字节是否落在可打印的 ASCII 区段(32-126)内
  • 协议调试 —— 许多网络协议(HTTP、SMTP、FTP)在头部和命令中使用 ASCII 文本,因此了解字符编码有助于分析原始流量
  • 位运算 —— ASCII 表揭示了诸如数字转数值(减 48)、大小写切换(与 32 异或)和控制字符识别等规律

常见问题

ASCII 和 Unicode 有什么区别?

ASCII 用 7 个比特定义了 128 个字符。Unicode 是一个超集,涵盖所有书写系统,定义了超过 149,000 个字符。Unicode 的前 128 个码位(U+0000 到 U+007F)与 ASCII 完全相同,因此任何有效的 ASCII 文本同时也是有效的 UTF-8 Unicode。

ASCII 控制字符有什么用途?

控制字符(0-31 和 127)最初设计用于控制电传打字机和打印机。如今,最常用的包括 C 语言中用于字符串结束的 NULL(0)、用于缩进的 TAB(9)、用于 Unix 换行的 LF(10)、用于 Windows 换行的 CR(13,即 CR+LF)以及用于终端转义序列的 ESC(27)。

为什么在 ASCII 中大写字母和小写字母相差 32?

这是有意为之的设计。大写 A 是 65(0100 0001),小写 a 是 97(0110 0001)—— 它们仅在第 5 位上不同。这让大小写转换变得极其高效:切换第 5 位即可转换大小写,将第 5 位置 1 可强制转为小写,将第 5 位清 0 可强制转为大写。这一规律是刻意内置于 ASCII 标准之中的。

相关工具