← 知识手册目录编码与文本 · GESP 2 / 3 / 4 级相关跳到完整速查 ↓

PYTHON KNOWLEDGE · 03

ASCII、Unicode 与字符编码完整表

完整查阅标准 ASCII 0–127,并理解 Unicode、编码方案与 Python 字符串之间的关系。

GESP 2GESP 3GESP 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

学完这一章,必须说清楚的规则

  1. 01

    数字字符 '0'–'9' 是 48–57,大写字母 'A'–'Z' 是 65–90,小写字母 'a'–'z' 是 97–122。

  2. 02

    ord(ch) 返回单个 Unicode 字符的码点;chr(n) 返回对应码点的字符,它们不限于 ASCII。

  3. 03

    字符串比较按 Unicode 码点逐项进行;大小写转换应优先使用 lower()/upper(),不要把“相差 32”推广到所有文字。

  4. 04

    str 是字符序列,bytes 是 0–255 的字节序列;encode() 从文字得到字节,decode() 从字节恢复文字。

  5. 05

    所谓“扩展 ASCII”没有唯一标准,128–255 的含义取决于代码页,不能当成标准 ASCII 表的一部分。

  6. 06

    换行符 LF 是 10,回车符 CR 是 13;Windows 文本常见 CRLF,跨平台读写要让文本模式正确处理。

03 · RUNNABLE EXAMPLE

可运行示例与因果解释

PYTHON
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 位 ASCII 的全部 128 个编码
十进制十六进制7 位二进制缩写字符含义分类
00x000000000NUL空字符控制字符
10x010000001SOH标题开始控制字符
20x020000010STX正文开始控制字符
30x030000011ETX正文结束控制字符
40x040000100EOT传输结束控制字符
50x050000101ENQ询问控制字符
60x060000110ACK确认控制字符
70x070000111BEL响铃控制字符
80x080001000BS退格控制字符
90x090001001HT水平制表控制字符
100x0A0001010LF换行控制字符
110x0B0001011VT垂直制表控制字符
120x0C0001100FF换页控制字符
130x0D0001101CR回车控制字符
140x0E0001110SO移出控制字符
150x0F0001111SI移入控制字符
160x100010000DLE数据链路转义控制字符
170x110010001DC1设备控制 1控制字符
180x120010010DC2设备控制 2控制字符
190x130010011DC3设备控制 3控制字符
200x140010100DC4设备控制 4控制字符
210x150010101NAK否定确认控制字符
220x160010110SYN同步空闲控制字符
230x170010111ETB传输块结束控制字符
240x180011000CAN取消控制字符
250x190011001EM介质结束控制字符
260x1A0011010SUB替换控制字符
270x1B0011011ESC转义控制字符
280x1C0011100FS文件分隔控制字符
290x1D0011101GS组分隔控制字符
300x1E0011110RS记录分隔控制字符
310x1F0011111US单元分隔控制字符
320x200100000SP空格空白字符
330x210100001!可打印标点或符号可打印字符
340x220100010"可打印标点或符号可打印字符
350x230100011#可打印标点或符号可打印字符
360x240100100$可打印标点或符号可打印字符
370x250100101%可打印标点或符号可打印字符
380x260100110&可打印标点或符号可打印字符
390x270100111'可打印标点或符号可打印字符
400x280101000(可打印标点或符号可打印字符
410x290101001)可打印标点或符号可打印字符
420x2A0101010*可打印标点或符号可打印字符
430x2B0101011+可打印标点或符号可打印字符
440x2C0101100,可打印标点或符号可打印字符
450x2D0101101-可打印标点或符号可打印字符
460x2E0101110.可打印标点或符号可打印字符
470x2F0101111/可打印标点或符号可打印字符
480x3001100000数字 0可打印字符
490x3101100011数字 1可打印字符
500x3201100102数字 2可打印字符
510x3301100113数字 3可打印字符
520x3401101004数字 4可打印字符
530x3501101015数字 5可打印字符
540x3601101106数字 6可打印字符
550x3701101117数字 7可打印字符
560x3801110008数字 8可打印字符
570x3901110019数字 9可打印字符
580x3A0111010:可打印标点或符号可打印字符
590x3B0111011;可打印标点或符号可打印字符
600x3C0111100<可打印标点或符号可打印字符
610x3D0111101=可打印标点或符号可打印字符
620x3E0111110>可打印标点或符号可打印字符
630x3F0111111?可打印标点或符号可打印字符
640x401000000@可打印标点或符号可打印字符
650x411000001A大写字母 A可打印字符
660x421000010B大写字母 B可打印字符
670x431000011C大写字母 C可打印字符
680x441000100D大写字母 D可打印字符
690x451000101E大写字母 E可打印字符
700x461000110F大写字母 F可打印字符
710x471000111G大写字母 G可打印字符
720x481001000H大写字母 H可打印字符
730x491001001I大写字母 I可打印字符
740x4A1001010J大写字母 J可打印字符
750x4B1001011K大写字母 K可打印字符
760x4C1001100L大写字母 L可打印字符
770x4D1001101M大写字母 M可打印字符
780x4E1001110N大写字母 N可打印字符
790x4F1001111O大写字母 O可打印字符
800x501010000P大写字母 P可打印字符
810x511010001Q大写字母 Q可打印字符
820x521010010R大写字母 R可打印字符
830x531010011S大写字母 S可打印字符
840x541010100T大写字母 T可打印字符
850x551010101U大写字母 U可打印字符
860x561010110V大写字母 V可打印字符
870x571010111W大写字母 W可打印字符
880x581011000X大写字母 X可打印字符
890x591011001Y大写字母 Y可打印字符
900x5A1011010Z大写字母 Z可打印字符
910x5B1011011[可打印标点或符号可打印字符
920x5C1011100\可打印标点或符号可打印字符
930x5D1011101]可打印标点或符号可打印字符
940x5E1011110^可打印标点或符号可打印字符
950x5F1011111_可打印标点或符号可打印字符
960x601100000`可打印标点或符号可打印字符
970x611100001a小写字母 a可打印字符
980x621100010b小写字母 b可打印字符
990x631100011c小写字母 c可打印字符
1000x641100100d小写字母 d可打印字符
1010x651100101e小写字母 e可打印字符
1020x661100110f小写字母 f可打印字符
1030x671100111g小写字母 g可打印字符
1040x681101000h小写字母 h可打印字符
1050x691101001i小写字母 i可打印字符
1060x6A1101010j小写字母 j可打印字符
1070x6B1101011k小写字母 k可打印字符
1080x6C1101100l小写字母 l可打印字符
1090x6D1101101m小写字母 m可打印字符
1100x6E1101110n小写字母 n可打印字符
1110x6F1101111o小写字母 o可打印字符
1120x701110000p小写字母 p可打印字符
1130x711110001q小写字母 q可打印字符
1140x721110010r小写字母 r可打印字符
1150x731110011s小写字母 s可打印字符
1160x741110100t小写字母 t可打印字符
1170x751110101u小写字母 u可打印字符
1180x761110110v小写字母 v可打印字符
1190x771110111w小写字母 w可打印字符
1200x781111000x小写字母 x可打印字符
1210x791111001y小写字母 y可打印字符
1220x7A1111010z小写字母 z可打印字符
1230x7B1111011{可打印标点或符号可打印字符
1240x7C1111100|可打印标点或符号可打印字符
1250x7D1111101}可打印标点或符号可打印字符
1260x7E1111110~可打印标点或符号可打印字符
1270x7F1111111DEL删除控制字符

COMMON PITFALLS

常见误区

  • 把 ASCII 说成所有字符的统一编号
  • 认为 ord() 只能处理 ASCII
  • 把字符个数等同于 UTF-8 字节数
  • 把某个代码页的 128–255 当成统一的扩展 ASCII

SCOPE & BOUNDARIES

适用边界

  • 本页给出完整标准 ASCII 0–127;Unicode 有十多万个已分配字符,不适合平铺成一张儿童课程长表,应按码点和字符数据库检索。
  • “扩展 ASCII”没有唯一标准,128–255 的解释必须同时注明代码页;字符显示还依赖字体,有合法码点也不等于当前字体一定有对应字形。