ASCII
一种 7 位字符编码标准,可表示 128 个字符,包括英文字母、数字和基本符号。
ASCII (美国信息交换标准代码) 是 1963 年由美国标准协会 (ASA,现 ANSI) 制定的字符编码标准。它使用 7 位表示 128 个字符:英文大小写字母 (A-Z、a-z)、数字 (0-9)、基本符号 (! @ # $ 等) 以及 33 个控制字符 (换行、制表符等)。该标准为计算机间的数据通信提供了统一规范,是所有现代字符编码的起点。
ASCII 是现代字符编码的基础。UTF-8 与 ASCII 完全向后兼容,ASCII 字符在 UTF-8 中仍然只占 1 个字节,因此英文文本的字节效率很高。得益于这种兼容性,纯 ASCII 编写的文件可以直接作为 UTF-8 正确读取,无需任何转换。字符编码基础书籍详细介绍了 ASCII 的历史和机制。
在编程中,ASCII 码值经常用于字符分类和转换。例如,大写 A 的 ASCII 码是 65,小写 a 是 97,两者之差恒为 32。利用这一规律,可以通过位运算高速完成大小写转换。此外,数字 0 的码值为 48,因此字符 '5' 减去 48 即可得到数值 5。这些 ASCII 码值知识在实现输入验证和解析器时非常实用。
ASCII 的 128 个字符无法表示中文、日文等非拉丁文字,这促使各国开发了区域性编码。日本使用 Shift_JIS 和 EUC-JP,中国使用 GB2312,这些编码的混乱导致了普遍的乱码问题。最终 Unicode 的出现统一了全球文字的处理方式,但 ASCII 作为其基础至今仍在发挥作用。计算机基础入门书将 ASCII 作为必备知识进行了讲解。
在字符计数中,ASCII 字符始终保持 1 个字符 = 1 个字节的简单关系。而中文全角字符在 UTF-8 中占 3 个字节,因此即使字符数相同,字节数也会有很大差异。在考虑数据库 VARCHAR 限制或 API 负载大小时,ASCII 字符与非 ASCII 字符的混合比例直接影响字节数的估算。