PYTHON KNOWLEDGE · 03
ASCII、Unicode 与字符编码完整表
完整查阅标准 ASCII 0–127,并理解 Unicode、编码方案与 Python 字符串之间的关系。
GESP 2 级GESP 3 级GESP 4 级
01 · FORMAL DEFINITION
正式定义
标准 ASCII 是 7 位字符编码,只定义十进制 0–127:0–31 与 127 是控制字符,32 是空格,33–126 是可打印字符。Unicode 为字符分配码点,UTF-8/UTF-16 是把码点编码成字节的方案;Unicode 的前 128 个码点与 ASCII 一致。
02 · MUST KNOW
学完这一章,必须说清楚的规则
- 01
数字字符 '0'–'9' 是 48–57,大写字母 'A'–'Z' 是 65–90,小写字母 'a'–'z' 是 97–122。
- 02
ord(ch) 返回单个 Unicode 字符的码点;chr(n) 返回对应码点的字符,它们不限于 ASCII。
- 03
字符串比较按 Unicode 码点逐项进行;大小写转换应优先使用 lower()/upper(),不要把“相差 32”推广到所有文字。
- 04
str 是字符序列,bytes 是 0–255 的字节序列;encode() 从文字得到字节,decode() 从字节恢复文字。
- 05
所谓“扩展 ASCII”没有唯一标准,128–255 的含义取决于代码页,不能当成标准 ASCII 表的一部分。
- 06
换行符 LF 是 10,回车符 CR 是 13;Windows 文本常见 CRLF,跨平台读写要让文本模式正确处理。
03 · RUNNABLE EXAMPLE
可运行示例与因果解释
print(ord('A'), chr(65))
print(ord('中'))
data = '你好'.encode('utf-8')
print(len('你好'), len(data))
print(data.decode('utf-8'))COMPLETE LOOKUP · 0–127
标准 ASCII 完整对照表
十进制、十六进制和二进制表示的是同一个编号。控制字符没有普通可见字形,用缩写和中文功能名表示。
控制字符 0–31、127空格 32可打印字符 33–126
| 十进制 | 十六进制 | 7 位二进制 | 缩写 | 字符 | 含义 | 分类 |
|---|---|---|---|---|---|---|
0 | 0x00 | 0000000 | NUL | — | 空字符 | 控制字符 |
1 | 0x01 | 0000001 | SOH | — | 标题开始 | 控制字符 |
2 | 0x02 | 0000010 | STX | — | 正文开始 | 控制字符 |
3 | 0x03 | 0000011 | ETX | — | 正文结束 | 控制字符 |
4 | 0x04 | 0000100 | EOT | — | 传输结束 | 控制字符 |
5 | 0x05 | 0000101 | ENQ | — | 询问 | 控制字符 |
6 | 0x06 | 0000110 | ACK | — | 确认 | 控制字符 |
7 | 0x07 | 0000111 | BEL | — | 响铃 | 控制字符 |
8 | 0x08 | 0001000 | BS | — | 退格 | 控制字符 |
9 | 0x09 | 0001001 | HT | — | 水平制表 | 控制字符 |
10 | 0x0A | 0001010 | LF | — | 换行 | 控制字符 |
11 | 0x0B | 0001011 | VT | — | 垂直制表 | 控制字符 |
12 | 0x0C | 0001100 | FF | — | 换页 | 控制字符 |
13 | 0x0D | 0001101 | CR | — | 回车 | 控制字符 |
14 | 0x0E | 0001110 | SO | — | 移出 | 控制字符 |
15 | 0x0F | 0001111 | SI | — | 移入 | 控制字符 |
16 | 0x10 | 0010000 | DLE | — | 数据链路转义 | 控制字符 |
17 | 0x11 | 0010001 | DC1 | — | 设备控制 1 | 控制字符 |
18 | 0x12 | 0010010 | DC2 | — | 设备控制 2 | 控制字符 |
19 | 0x13 | 0010011 | DC3 | — | 设备控制 3 | 控制字符 |
20 | 0x14 | 0010100 | DC4 | — | 设备控制 4 | 控制字符 |
21 | 0x15 | 0010101 | NAK | — | 否定确认 | 控制字符 |
22 | 0x16 | 0010110 | SYN | — | 同步空闲 | 控制字符 |
23 | 0x17 | 0010111 | ETB | — | 传输块结束 | 控制字符 |
24 | 0x18 | 0011000 | CAN | — | 取消 | 控制字符 |
25 | 0x19 | 0011001 | EM | — | 介质结束 | 控制字符 |
26 | 0x1A | 0011010 | SUB | — | 替换 | 控制字符 |
27 | 0x1B | 0011011 | ESC | — | 转义 | 控制字符 |
28 | 0x1C | 0011100 | FS | — | 文件分隔 | 控制字符 |
29 | 0x1D | 0011101 | GS | — | 组分隔 | 控制字符 |
30 | 0x1E | 0011110 | RS | — | 记录分隔 | 控制字符 |
31 | 0x1F | 0011111 | US | — | 单元分隔 | 控制字符 |
32 | 0x20 | 0100000 | SP | ␠ | 空格 | 空白字符 |
33 | 0x21 | 0100001 | — | ! | 可打印标点或符号 | 可打印字符 |
34 | 0x22 | 0100010 | — | " | 可打印标点或符号 | 可打印字符 |
35 | 0x23 | 0100011 | — | # | 可打印标点或符号 | 可打印字符 |
36 | 0x24 | 0100100 | — | $ | 可打印标点或符号 | 可打印字符 |
37 | 0x25 | 0100101 | — | % | 可打印标点或符号 | 可打印字符 |
38 | 0x26 | 0100110 | — | & | 可打印标点或符号 | 可打印字符 |
39 | 0x27 | 0100111 | — | ' | 可打印标点或符号 | 可打印字符 |
40 | 0x28 | 0101000 | — | ( | 可打印标点或符号 | 可打印字符 |
41 | 0x29 | 0101001 | — | ) | 可打印标点或符号 | 可打印字符 |
42 | 0x2A | 0101010 | — | * | 可打印标点或符号 | 可打印字符 |
43 | 0x2B | 0101011 | — | + | 可打印标点或符号 | 可打印字符 |
44 | 0x2C | 0101100 | — | , | 可打印标点或符号 | 可打印字符 |
45 | 0x2D | 0101101 | — | - | 可打印标点或符号 | 可打印字符 |
46 | 0x2E | 0101110 | — | . | 可打印标点或符号 | 可打印字符 |
47 | 0x2F | 0101111 | — | / | 可打印标点或符号 | 可打印字符 |
48 | 0x30 | 0110000 | — | 0 | 数字 0 | 可打印字符 |
49 | 0x31 | 0110001 | — | 1 | 数字 1 | 可打印字符 |
50 | 0x32 | 0110010 | — | 2 | 数字 2 | 可打印字符 |
51 | 0x33 | 0110011 | — | 3 | 数字 3 | 可打印字符 |
52 | 0x34 | 0110100 | — | 4 | 数字 4 | 可打印字符 |
53 | 0x35 | 0110101 | — | 5 | 数字 5 | 可打印字符 |
54 | 0x36 | 0110110 | — | 6 | 数字 6 | 可打印字符 |
55 | 0x37 | 0110111 | — | 7 | 数字 7 | 可打印字符 |
56 | 0x38 | 0111000 | — | 8 | 数字 8 | 可打印字符 |
57 | 0x39 | 0111001 | — | 9 | 数字 9 | 可打印字符 |
58 | 0x3A | 0111010 | — | : | 可打印标点或符号 | 可打印字符 |
59 | 0x3B | 0111011 | — | ; | 可打印标点或符号 | 可打印字符 |
60 | 0x3C | 0111100 | — | < | 可打印标点或符号 | 可打印字符 |
61 | 0x3D | 0111101 | — | = | 可打印标点或符号 | 可打印字符 |
62 | 0x3E | 0111110 | — | > | 可打印标点或符号 | 可打印字符 |
63 | 0x3F | 0111111 | — | ? | 可打印标点或符号 | 可打印字符 |
64 | 0x40 | 1000000 | — | @ | 可打印标点或符号 | 可打印字符 |
65 | 0x41 | 1000001 | — | A | 大写字母 A | 可打印字符 |
66 | 0x42 | 1000010 | — | B | 大写字母 B | 可打印字符 |
67 | 0x43 | 1000011 | — | C | 大写字母 C | 可打印字符 |
68 | 0x44 | 1000100 | — | D | 大写字母 D | 可打印字符 |
69 | 0x45 | 1000101 | — | E | 大写字母 E | 可打印字符 |
70 | 0x46 | 1000110 | — | F | 大写字母 F | 可打印字符 |
71 | 0x47 | 1000111 | — | G | 大写字母 G | 可打印字符 |
72 | 0x48 | 1001000 | — | H | 大写字母 H | 可打印字符 |
73 | 0x49 | 1001001 | — | I | 大写字母 I | 可打印字符 |
74 | 0x4A | 1001010 | — | J | 大写字母 J | 可打印字符 |
75 | 0x4B | 1001011 | — | K | 大写字母 K | 可打印字符 |
76 | 0x4C | 1001100 | — | L | 大写字母 L | 可打印字符 |
77 | 0x4D | 1001101 | — | M | 大写字母 M | 可打印字符 |
78 | 0x4E | 1001110 | — | N | 大写字母 N | 可打印字符 |
79 | 0x4F | 1001111 | — | O | 大写字母 O | 可打印字符 |
80 | 0x50 | 1010000 | — | P | 大写字母 P | 可打印字符 |
81 | 0x51 | 1010001 | — | Q | 大写字母 Q | 可打印字符 |
82 | 0x52 | 1010010 | — | R | 大写字母 R | 可打印字符 |
83 | 0x53 | 1010011 | — | S | 大写字母 S | 可打印字符 |
84 | 0x54 | 1010100 | — | T | 大写字母 T | 可打印字符 |
85 | 0x55 | 1010101 | — | U | 大写字母 U | 可打印字符 |
86 | 0x56 | 1010110 | — | V | 大写字母 V | 可打印字符 |
87 | 0x57 | 1010111 | — | W | 大写字母 W | 可打印字符 |
88 | 0x58 | 1011000 | — | X | 大写字母 X | 可打印字符 |
89 | 0x59 | 1011001 | — | Y | 大写字母 Y | 可打印字符 |
90 | 0x5A | 1011010 | — | Z | 大写字母 Z | 可打印字符 |
91 | 0x5B | 1011011 | — | [ | 可打印标点或符号 | 可打印字符 |
92 | 0x5C | 1011100 | — | \ | 可打印标点或符号 | 可打印字符 |
93 | 0x5D | 1011101 | — | ] | 可打印标点或符号 | 可打印字符 |
94 | 0x5E | 1011110 | — | ^ | 可打印标点或符号 | 可打印字符 |
95 | 0x5F | 1011111 | — | _ | 可打印标点或符号 | 可打印字符 |
96 | 0x60 | 1100000 | — | ` | 可打印标点或符号 | 可打印字符 |
97 | 0x61 | 1100001 | — | a | 小写字母 a | 可打印字符 |
98 | 0x62 | 1100010 | — | b | 小写字母 b | 可打印字符 |
99 | 0x63 | 1100011 | — | c | 小写字母 c | 可打印字符 |
100 | 0x64 | 1100100 | — | d | 小写字母 d | 可打印字符 |
101 | 0x65 | 1100101 | — | e | 小写字母 e | 可打印字符 |
102 | 0x66 | 1100110 | — | f | 小写字母 f | 可打印字符 |
103 | 0x67 | 1100111 | — | g | 小写字母 g | 可打印字符 |
104 | 0x68 | 1101000 | — | h | 小写字母 h | 可打印字符 |
105 | 0x69 | 1101001 | — | i | 小写字母 i | 可打印字符 |
106 | 0x6A | 1101010 | — | j | 小写字母 j | 可打印字符 |
107 | 0x6B | 1101011 | — | k | 小写字母 k | 可打印字符 |
108 | 0x6C | 1101100 | — | l | 小写字母 l | 可打印字符 |
109 | 0x6D | 1101101 | — | m | 小写字母 m | 可打印字符 |
110 | 0x6E | 1101110 | — | n | 小写字母 n | 可打印字符 |
111 | 0x6F | 1101111 | — | o | 小写字母 o | 可打印字符 |
112 | 0x70 | 1110000 | — | p | 小写字母 p | 可打印字符 |
113 | 0x71 | 1110001 | — | q | 小写字母 q | 可打印字符 |
114 | 0x72 | 1110010 | — | r | 小写字母 r | 可打印字符 |
115 | 0x73 | 1110011 | — | s | 小写字母 s | 可打印字符 |
116 | 0x74 | 1110100 | — | t | 小写字母 t | 可打印字符 |
117 | 0x75 | 1110101 | — | u | 小写字母 u | 可打印字符 |
118 | 0x76 | 1110110 | — | v | 小写字母 v | 可打印字符 |
119 | 0x77 | 1110111 | — | w | 小写字母 w | 可打印字符 |
120 | 0x78 | 1111000 | — | x | 小写字母 x | 可打印字符 |
121 | 0x79 | 1111001 | — | y | 小写字母 y | 可打印字符 |
122 | 0x7A | 1111010 | — | z | 小写字母 z | 可打印字符 |
123 | 0x7B | 1111011 | — | { | 可打印标点或符号 | 可打印字符 |
124 | 0x7C | 1111100 | — | | | 可打印标点或符号 | 可打印字符 |
125 | 0x7D | 1111101 | — | } | 可打印标点或符号 | 可打印字符 |
126 | 0x7E | 1111110 | — | ~ | 可打印标点或符号 | 可打印字符 |
127 | 0x7F | 1111111 | DEL | — | 删除 | 控制字符 |
COMMON PITFALLS
常见误区
- 把 ASCII 说成所有字符的统一编号
- 认为 ord() 只能处理 ASCII
- 把字符个数等同于 UTF-8 字节数
- 把某个代码页的 128–255 当成统一的扩展 ASCII
SCOPE & BOUNDARIES
适用边界
- 本页给出完整标准 ASCII 0–127;Unicode 有十多万个已分配字符,不适合平铺成一张儿童课程长表,应按码点和字符数据库检索。
- “扩展 ASCII”没有唯一标准,128–255 的解释必须同时注明代码页;字符显示还依赖字体,有合法码点也不等于当前字体一定有对应字形。