ASCII 码表

ASCII 码表是一个免费在线速查工具:ASCII 即美国信息交换标准代码,本页列出全部 128 个字符的十进制、十六进制、八进制、二进制写法,以及 HTML 实体、URL 编码和转义写法,33 个控制字符逐个给出中文含义与今天的用途。输入一个字符或数字立刻定位,也能把文本转成 ASCII 码、把码值还原成文字,另附 128–255 三种扩展码页对照。全程浏览器本地查表,不上传。

显示列(6)

导出时控制字符一律写成缩写(TAB、LF 不会撑破表格);= + - @ 四个字符所在的格子会被加上一个英文单引号,防止表格软件把它当公式执行,Excel 里不显示这个引号。

ASCII 码表完整版(0–127)

当前显示 128 / 128 个字符;控制字符以缩写和控制图形符号显示。数据更新于 2026-10。

ASCII 码对照表:十进制、十六进制、八进制、二进制、字符与名称
十进制十六进制八进制二进制字符名称分组
0000000000000NUL空字符 Null控制字符
1010010000001SOH标题开始 Start of Heading控制字符
2020020000010STX正文开始 Start of Text控制字符
3030030000011ETX正文结束 End of Text控制字符
4040040000100EOT传输结束 End of Transmission控制字符
5050050000101ENQ询问 Enquiry控制字符
6060060000110ACK确认 Acknowledge控制字符
7070070000111BEL响铃 Bell控制字符
8080100001000BS退格 Backspace控制字符
9090110001001HT水平制表 Horizontal Tabulation控制字符
100A0120001010LF换行 Line Feed控制字符
110B0130001011VT垂直制表 Vertical Tabulation控制字符
120C0140001100FF换页 Form Feed控制字符
130D0150001101CR回车 Carriage Return控制字符
140E0160001110SO移出 Shift Out控制字符
150F0170001111SI移入 Shift In控制字符
16100200010000DLE数据链路转义 Data Link Escape控制字符
17110210010001DC1设备控制 1(XON) Device Control 1控制字符
18120220010010DC2设备控制 2 Device Control 2控制字符
19130230010011DC3设备控制 3(XOFF) Device Control 3控制字符
20140240010100DC4设备控制 4 Device Control 4控制字符
21150250010101NAK否定确认 Negative Acknowledge控制字符
22160260010110SYN同步空闲 Synchronous Idle控制字符
23170270010111ETB传输块结束 End of Transmission Block控制字符
24180300011000CAN取消 Cancel控制字符
25190310011001EM介质结束 End of Medium控制字符
261A0320011010SUB替换 Substitute控制字符
271B0330011011ESC转义 Escape控制字符
281C0340011100FS文件分隔符 File Separator控制字符
291D0350011101GS组分隔符 Group Separator控制字符
301E0360011110RS记录分隔符 Record Separator控制字符
311F0370011111US单元分隔符 Unit Separator控制字符
32200400100000SP空格 Space空格
33210410100001!感叹号 Exclamation Mark标点与符号
34220420100010"双引号 Quotation Mark标点与符号
35230430100011#井号 Number Sign标点与符号
36240440100100$美元符号 Dollar Sign标点与符号
37250450100101%百分号 Percent Sign标点与符号
38260460100110&和号 Ampersand标点与符号
39270470100111'单引号 Apostrophe标点与符号
40280500101000(左圆括号 Left Parenthesis标点与符号
41290510101001)右圆括号 Right Parenthesis标点与符号
422A0520101010*星号 Asterisk标点与符号
432B0530101011+加号 Plus Sign标点与符号
442C0540101100,逗号 Comma标点与符号
452D0550101101-连字符减号 Hyphen-Minus标点与符号
462E0560101110.句点 Full Stop标点与符号
472F0570101111/斜杠 Solidus标点与符号
483006001100000数字 0 Digit Zero数字
493106101100011数字 1 Digit One数字
503206201100102数字 2 Digit Two数字
513306301100113数字 3 Digit Three数字
523406401101004数字 4 Digit Four数字
533506501101015数字 5 Digit Five数字
543606601101106数字 6 Digit Six数字
553706701101117数字 7 Digit Seven数字
563807001110008数字 8 Digit Eight数字
573907101110019数字 9 Digit Nine数字
583A0720111010:冒号 Colon标点与符号
593B0730111011;分号 Semicolon标点与符号
603C0740111100<小于号 Less-Than Sign标点与符号
613D0750111101=等号 Equals Sign标点与符号
623E0760111110>大于号 Greater-Than Sign标点与符号
633F0770111111?问号 Question Mark标点与符号
64401001000000@at 符号 Commercial At标点与符号
65411011000001A大写字母 A Latin Capital Letter A大写字母
66421021000010B大写字母 B Latin Capital Letter B大写字母
67431031000011C大写字母 C Latin Capital Letter C大写字母
68441041000100D大写字母 D Latin Capital Letter D大写字母
69451051000101E大写字母 E Latin Capital Letter E大写字母
70461061000110F大写字母 F Latin Capital Letter F大写字母
71471071000111G大写字母 G Latin Capital Letter G大写字母
72481101001000H大写字母 H Latin Capital Letter H大写字母
73491111001001I大写字母 I Latin Capital Letter I大写字母
744A1121001010J大写字母 J Latin Capital Letter J大写字母
754B1131001011K大写字母 K Latin Capital Letter K大写字母
764C1141001100L大写字母 L Latin Capital Letter L大写字母
774D1151001101M大写字母 M Latin Capital Letter M大写字母
784E1161001110N大写字母 N Latin Capital Letter N大写字母
794F1171001111O大写字母 O Latin Capital Letter O大写字母
80501201010000P大写字母 P Latin Capital Letter P大写字母
81511211010001Q大写字母 Q Latin Capital Letter Q大写字母
82521221010010R大写字母 R Latin Capital Letter R大写字母
83531231010011S大写字母 S Latin Capital Letter S大写字母
84541241010100T大写字母 T Latin Capital Letter T大写字母
85551251010101U大写字母 U Latin Capital Letter U大写字母
86561261010110V大写字母 V Latin Capital Letter V大写字母
87571271010111W大写字母 W Latin Capital Letter W大写字母
88581301011000X大写字母 X Latin Capital Letter X大写字母
89591311011001Y大写字母 Y Latin Capital Letter Y大写字母
905A1321011010Z大写字母 Z Latin Capital Letter Z大写字母
915B1331011011[左方括号 Left Square Bracket标点与符号
925C1341011100\反斜杠 Reverse Solidus标点与符号
935D1351011101]右方括号 Right Square Bracket标点与符号
945E1361011110^脱字符 Circumflex Accent标点与符号
955F1371011111_下划线 Low Line标点与符号
96601401100000`反引号 Grave Accent标点与符号
97611411100001a小写字母 a Latin Small Letter A小写字母
98621421100010b小写字母 b Latin Small Letter B小写字母
99631431100011c小写字母 c Latin Small Letter C小写字母
100641441100100d小写字母 d Latin Small Letter D小写字母
101651451100101e小写字母 e Latin Small Letter E小写字母
102661461100110f小写字母 f Latin Small Letter F小写字母
103671471100111g小写字母 g Latin Small Letter G小写字母
104681501101000h小写字母 h Latin Small Letter H小写字母
105691511101001i小写字母 i Latin Small Letter I小写字母
1066A1521101010j小写字母 j Latin Small Letter J小写字母
1076B1531101011k小写字母 k Latin Small Letter K小写字母
1086C1541101100l小写字母 l Latin Small Letter L小写字母
1096D1551101101m小写字母 m Latin Small Letter M小写字母
1106E1561101110n小写字母 n Latin Small Letter N小写字母
1116F1571101111o小写字母 o Latin Small Letter O小写字母
112701601110000p小写字母 p Latin Small Letter P小写字母
113711611110001q小写字母 q Latin Small Letter Q小写字母
114721621110010r小写字母 r Latin Small Letter R小写字母
115731631110011s小写字母 s Latin Small Letter S小写字母
116741641110100t小写字母 t Latin Small Letter T小写字母
117751651110101u小写字母 u Latin Small Letter U小写字母
118761661110110v小写字母 v Latin Small Letter V小写字母
119771671110111w小写字母 w Latin Small Letter W小写字母
120781701111000x小写字母 x Latin Small Letter X小写字母
121791711111001y小写字母 y Latin Small Letter Y小写字母
1227A1721111010z小写字母 z Latin Small Letter Z小写字母
1237B1731111011{左花括号 Left Curly Bracket标点与符号
1247C1741111100|竖线 Vertical Line标点与符号
1257D1751111101}右花括号 Right Curly Bracket标点与符号
1267E1761111110~波浪号 Tilde标点与符号
1277F1771111111DEL删除 Delete控制字符

如何使用ASCII 码表

1

在即查框里输入一个字符、一个数字或一个名称:A、65、0x41、1000001、LF、换行、Ctrl+C 都能命中,单独输入一个空格就是 32 号空格;命中后码表高亮该行,并给出全部写法与一键复制。

2

用分组按钮只看控制字符、数字或字母,在「显示列」里加上 HTML 实体、URL 编码、转义写法、Caret 写法;整张表可以复制成 TSV 或 Markdown、下载 CSV,或者直接打印成一页 A4。

3

要整段转换就切到「文本 ⇄ ASCII 码」:粘贴文字得到十进制、十六进制或二进制码值;反过来粘贴一串码值,工具会自动判断进制并还原成文字,有歧义时提示另一种解读。

关于ASCII 码表的常见问题

ASCII 码表查询会上传我输入的内容吗?
不会。整张码表随页面一起打包在你的浏览器里,即查、文本与 ASCII 码互转都在本地完成,输入的文字和码值不会发送到服务器,也不会写进本地存储——本地只记住你选的分组、显示列和转换参数,关掉页面就只剩这些偏好。
A 的 ASCII 码是多少?小写 a 呢?
大写 A 是 65(十六进制 41,二进制 1000001),小写 a 是 97(十六进制 61)。26 个大写字母占 65 到 90,小写字母占 97 到 122,同一个字母的大小写正好相差 32,所以记住 A 是 65、a 是 97 就能推出全部字母。
大小写字母的 ASCII 码为什么相差 32?
32 是二进制 100000,正好是第 5 位。ASCII 设计时有意让大小写字母只在这一位上不同,所以程序里把字符和 32 做异或就能切换大小写,和 0x20 按位与就能判断它是不是小写字母,比查表或比较范围都省事。
空格、数字 0、换行和回车的 ASCII 码是多少?
空格是 32,数字字符 0 是 48(9 是 57,所以字符 7 减去字符 0 正好得到数值 7),换行 LF 是 10(写作 \n),回车 CR 是 13(写作 \r)。注意 ASCII 码 0 是 NUL 空字符,和数字字符 0 不是一回事。
ASCII 码一共有多少个?哪些是控制字符?
标准 ASCII 共 128 个(0 到 127,只用 7 位)。其中 0 到 31 和 127 共 33 个是控制字符,不显示成字形;32 到 126 共 95 个是可打印字符,包括空格、10 个数字、52 个大小写字母和 32 个标点符号。DEL(127)最容易被漏掉。
ASCII 码里的换行 LF 和回车 CR 有什么区别?
打字机时代,回车是把字车推回行首,换行是把纸往上卷一行。今天 Unix、Linux、macOS 的文本文件用 LF(10)换行,Windows 用 CR+LF(13 10),经典 Mac OS 单用 CR。Windows 文件拿到 Linux 里打开多出来的 ^M,就是那个多余的 CR。
扩展 ASCII 码表(128–255)为什么各网站不一样?
因为根本没有一张叫「扩展 ASCII」的统一标准。ASCII 只定义到 127,128 到 255 由各家码页自行填充:DOS 的 CP437 放了制表线和带音标字母,ISO-8859-1 放西欧字母,Windows-1252 又在 0x80 到 0x9F 放了欧元符号和弯引号。本页三张并排对照。
中文有 ASCII 码吗?汉字怎么查编码?
没有。ASCII 只有 128 个字符,不含任何汉字。汉字在 Unicode 里有码点,比如「中」是 U+4E2D(十进制 20013),保存成 UTF-8 是 3 个字节,在 GBK 里是 2 个字节。在本页即查框里输入汉字会直接给出码点和 UTF-8 字节,更多转义写法可以用本站的 Unicode 转换。
怎么把文字转成 ASCII 码,或把 ASCII 码转回文字?
在本页「文本 ⇄ ASCII 码」里粘贴文字,选十进制、十六进制或二进制即可得到码值;反过来粘贴一串码值,工具会自动判断进制并还原。数字串有歧义时(比如 41 42 43 按十进制是 )*+,按十六进制是 ABC)会提示另一种解读,解不开的码逐个标出,不会悄悄丢掉。
Ctrl+C 和 ASCII 码有什么关系?
Ctrl 加字母发出的就是控制字符:字母的码值减 64,Ctrl+C 是 3 号 ETX,Ctrl+D 是 4 号 EOT。Unix 终端收到 ETX 会给前台程序发中断信号,在行首收到 EOT 视为输入结束;Ctrl+Z 在 Unix 是挂起进程,在 Windows 控制台则表示输入结束。
ASCII 码和 Unicode、UTF-8 有什么区别?
ASCII 是 Unicode 的前 128 个码点,两者在 0 到 127 范围内完全一致;UTF-8 是 Unicode 的一种存储方式,它把这 128 个字符原样存成 1 个字节,所以一份纯英文的 ASCII 文件本身就是合法的 UTF-8 文件。区别在 127 以外:ASCII 到此为止,Unicode 还收录了十几万个字符。
键盘键码 keyCode 和 ASCII 码是一回事吗?
不是。keyCode 标识的是哪个物理键,ASCII 码标识的是哪个字符:A 键的 keyCode 是 65,不管你打出的是大写 A 还是小写 a;小键盘 0 的 keyCode 是 96,而 96 在 ASCII 里是反引号。想看按键的真实键码,用本站的键盘键码查询。

记住这五个数就够用:空格、0、A、a、DEL 的 ASCII 码

ASCII 码表看起来有 128 行,日常真正要记的只有五个数,其余都能推出来。数字字符从 48 开始连续排列,所以字符 7 的码值减去字符 0 的码值正好是 7, 这也是 C 语言里把数字字符转成数值的经典写法;大写字母从 65 开始,小写字母从 97 开始,两者相差 32。

五个最值得记住的 ASCII 码:十进制、十六进制、二进制与用途
字符十进制十六进制二进制记住它的理由
空格(SP)32200100000第一个可打印字符,比它小的全是控制字符
数字 048300110000低 4 位就是数值本身:7 是 37,十六进制末位正是 7
大写 A65411000001大写字母 A–Z 连续排列,B 是 66,Z 是 90
小写 a97611100001与大写只差第 5 位(0x20),所以 65 ^ 32 = 97
删除(DEL)1277F11111117 位全为 1,最后一个 ASCII 码,也是控制字符

常见 ASCII 码查询速答

下面是 ASCII 码查询里被问得最多的单个字符,答案全部从本页的码表数据现算。想看完整写法(HTML 实体、URL 编码、转义写法),在上方即查框里输入对应字符即可。

常见 ASCII 码查询:单个字符的 ASCII 码速答
你在搜的问题答案
A的ASCII码是多少大写 A 是 65,十六进制 41,二进制 1000001
a的ASCII码小写 a 是 97,十六进制 61
空格的ASCII码空格是 32,十六进制 20,URL 编码写作 %20
0的ASCII码数字字符 0 是 48;而 ASCII 码 0 是 NUL 空字符,两者不是一回事
换行符的ASCII码换行 LF 是 10,十六进制 0A
回车的ASCII码回车 CR 是 13,十六进制 0D
\n的ASCII码\n 是换行 LF,ASCII 码 10
\0的ASCII码\0 是空字符 NUL,ASCII 码 0,C 语言用它标记字符串结尾
Tab的ASCII码Tab 是水平制表 HT,ASCII 码 9,写作 \t
ESC的ASCII码ESC 是 27,十六进制 1B,终端颜色序列的开头
DEL ASCII 127DEL 是 127,二进制 1111111,Caret 写法 ^?
Ctrl+C ASCIICtrl+C 发出 3 号 ETX(正文结束)
大小写字母ASCII码相差多少相差 32,即第 5 位 0x20
ASCII码一共多少个128 个:33 个控制字符 + 95 个可打印字符

这张 ASCII 码对照表也叫 ASCII 表、ASCII 字符表或 ASCII 编码表,英文叫 ASCII table、ASCII chart 或 ASCII code table。表里同时给出 ASCII 码十进制、ASCII 码八进制、ASCII 码二进制三种写法,也可以当作 ASCII 码十六进制对照表来用; 英文里常说的 ASCII to hex、ASCII to binary、ASCII to text,对应的就是本页「文本 ⇄ ASCII 码」里的字符转 ASCII 码、文本转 ASCII 码与 ASCII 码转字符、ASCII 码转文本。

33 个 ASCII 控制字符一览:缩写、Caret、转义与今天的用途

ASCII 控制字符也叫 ASCII 不可见字符:0–31 共 32 个,再加上 127 号 DEL,一共 33 个,不是 32 个。 它们诞生于电传打字机时代,大部分今天已经用不上,但有十几个仍然天天在用——换行、回车、Tab、终端里的 Ctrl+C,以及条码与日志格式里的分隔符。

ASCII 控制字符一览:33 个控制字符的缩写、Caret 写法、转义写法、中文含义与今天的用途
码值缩写Caret转义写法中文含义今天在哪还会碰到
0(0x00)NUL^@\0 \x00 \000 \u0000空字符C 语言用它标记字符串结尾,写作 \0;纸带时代表示「这里没打孔」。它不是空格(32),也不是数字字符 0(48)。今天在二进制文件、C 字符串和数据库里的「\0 截断」问题中最常见。
1(0x01)SOH^A\x01 \001 \u0001标题开始早期电报与报文协议用它标出报头的开始。今天最常见于金融行业的 FIX 协议:FIX 消息的字段之间就用 SOH(0x01)分隔,日志里常显示成 ^A。
2(0x02)STX^B\x02 \002 \u0002正文开始报文协议里表示「报头结束、正文开始」。今天在串口设备、POS 机、条码扫描枪等工业通信协议中仍常见,数据帧常以 STX 开头、ETX 结尾。
3(0x03)ETX^C\x03 \003 \u0003正文结束原意是报文正文结束,串口协议里与 STX 成对出现。在终端里按 Ctrl+C 发出的就是它,但「中断」不是 ETX 自带的语义:是 Unix 终端驱动看到它后给前台进程发 SIGINT,stty intr 可以改成别的键。
4(0x04)EOT^D\x04 \004 \u0004传输结束原意是整段传输结束。终端里按 Ctrl+D 发出它:Unix 终端在行首收到时让 read() 返回 0,程序就当作到了文件结尾。注意 EOF 不是一个字符,文件里并不存在一个叫 EOF 的字节。
5(0x05)ENQ^E\x05 \005 \u0005询问用来询问对方「你是谁 / 准备好了吗」,对方回 ACK 或身份串。今天在老式终端的应答回传(answerback)和一些工业串口协议里还能见到,日常编程很少碰到。
6(0x06)ACK^F\x06 \006 \u0006确认接收方告诉发送方「收到了、没问题」,与 21 号 NAK 成对。TCP 报头里的 ACK 标志位名字就来自这里,串口、Modbus 等设备协议里仍直接用这个字节做应答。
7(0x07)BEL^G\a \x07 \007 \u0007响铃让电传打字机响铃提醒操作员。今天往终端输出这个字节仍会发出提示音或让标签页闪一下;C 和 Python 写作 \a,但 JavaScript 没有 \a 这个转义,要写 \x07。
8(0x08)BS^H\b \x08 \010 \u0008退格让打印头往回退一格,老式打字机靠它把两个字符叠印成一个。字符串里写作 \b;但在 JavaScript 和多数正则里,\b 表示单词边界,不是退格,这是最常见的混淆。
9(0x09)HT^I\t \x09 \011 \u0009水平制表即 Tab 键,跳到下一个制表位。写作 \t,Ctrl+I 也能打出来。今天随处可见:TSV 表格的列分隔符、Makefile 规定的缩进,以及「空格还是 Tab 缩进」的老争论。
10(0x0A)LF^J\n \x0a \012 \u000a换行让纸往上卷一行。Unix、Linux、macOS 的文本文件用单个 LF 换行,写作 \n,Ctrl+J 也能打出来。HTTP、SMTP 等协议规定行尾必须是 CR+LF,单个 LF 不算。
11(0x0B)VT^K\v \x0b \013 \u000b垂直制表让打印头跳到下一个垂直制表位,今天几乎没人用。写作 \v,JavaScript 字符串支持 \v,但 JSON 不支持,JSON 里只能写 \u000b;Word 里的手动换行(Shift+Enter)导出纯文本时有时会变成它。
12(0x0C)FF^L\f \x0c \014 \u000c换页让打印机退出当前页、换到下一张纸。写作 \f。今天在 C 和 Python 的老源码里偶尔用作「分页」标记,PDF 文本提取结果里也常见到它作为页与页之间的分隔。
13(0x0D)CR^M\r \x0d \015 \u000d回车让打字机的字车回到行首。写作 \r,Ctrl+M 也能打出来。Windows 文本文件用 CR+LF(13 10)换行,经典 Mac OS(9 及以前)单用 CR;Windows 文件在 Linux 里多出的 ^M 就是它。
14(0x0E)SO^N\x0e \016 \u000e移出切换到另一套字符集,直到遇到 SI 才切回来。老式终端用它切到画线字符;今天在 ISO-2022-JP 等 7 位编码的电子邮件里仍保留这种「切换」思路。
15(0x0F)SI^O\x0f \017 \u000f移入与 14 号 SO 成对,切回标准字符集。终端屏幕突然满屏乱码线条时,往往是误输出了 SO,执行 reset 或输出一个 SI 就能恢复。
16(0x10)DLE^P\x10 \020 \u0010数据链路转义告诉对方「后面的字节按数据处理,不是控制字符」,相当于数据流里的转义前缀。今天在一些串口二进制协议里仍用 DLE 包住 STX、ETX 来做帧定界。
17(0x11)DC1^Q\x11 \021 \u0011设备控制 1(XON)设备控制码,通常用作软件流控的 XON:「可以继续发了」。终端按 Ctrl+S 后画面像卡死了一样,按 Ctrl+Q 发出 XON 就能恢复。
18(0x12)DC2^R\x12 \022 \u0012设备控制 2留给设备自定义的控制码,早期用来打开纸带穿孔机等辅助设备。今天只在个别打印机和收银设备的私有指令集里出现,含义以设备手册为准。
19(0x13)DC3^S\x13 \023 \u0013设备控制 3(XOFF)设备控制码,通常用作软件流控的 XOFF:「先停一下」。终端里按 Ctrl+S 就会发出它,输出被暂停,看起来像程序卡死,按 Ctrl+Q 恢复。
20(0x14)DC4^T\x14 \024 \u0014设备控制 4留给设备自定义的控制码,早期用来关闭或停止辅助设备。今天与 DC2 一样,只在少数设备私有协议里出现,通用软件基本不会用到。
21(0x15)NAK^U\x15 \025 \u0015否定确认接收方告诉发送方「出错了、请重发」,与 6 号 ACK 成对。XMODEM 等老式文件传输协议用它请求重传,今天的串口设备协议也常保留这个应答字节。
22(0x16)SYN^V\x16 \026 \u0016同步空闲同步传输时在没有数据可发的空档里填充,让收发双方保持时钟同步。TCP 握手的 SYN 标志名字与它同源,但那是报头里的一个标志位,不是这个字节。
23(0x17)ETB^W\x17 \027 \u0017传输块结束表示一个数据块传完了,但整段传输还没结束,常用于分块发送的老式协议。今天在部分 POS 和医疗设备的串口协议里仍作为块尾标记出现。
24(0x18)CAN^X\x18 \030 \u0018取消表示前面的数据有误、请作废。今天在终端里仍有用处:ANSI 终端收到 CAN 会中止正在解析的转义序列,XMODEM 也用连续几个 CAN 表示取消传输。
25(0x19)EM^Y\x19 \031 \u0019介质结束表示纸带或磁带到头了,后面没有可用数据。今天几乎只在讲解 ASCII 历史时出现,日常数据里见到它多半是二进制内容被当成了文本。
26(0x1A)SUB^Z\x1a \032 \u001a替换用来顶替传输中损坏的字符。Ctrl+Z 打出它,但两个平台语义不同:Windows 控制台把它当作输入结束(老 DOS 文本文件末尾也常带一个),Unix 终端里 Ctrl+Z 则是挂起前台进程(SIGTSTP)。
27(0x1B)ESC^[\e \x1b \033 \u001b转义表示后面几个字节是一条控制指令。今天最常见的是终端颜色:ANSI 转义序列 ESC [ 31 m 就以它开头。写作 \x1b、\u001b 或八进制 \033;\e 只是 GCC 与 Bash 的扩展写法,不是标准 C。
28(0x1C)FS^\\x1c \034 \u001c文件分隔符信息分隔符里最大的一级,用来分隔「文件」。FS、GS、RS、US 由大到小形成四级层次,今天在少数 EDI、医疗数据格式里仍被当作不会与正文冲突的分隔符使用。
29(0x1D)GS^]\x1d \035 \u001d组分隔符第二级信息分隔符。今天最常碰到它的地方是 GS1 条码:GS1-128 与 GS1 DataMatrix 里可变长度字段之间的 FNC1 分隔,扫码枪输出的就是 GS(0x1D),药品追溯码里大量出现。
30(0x1E)RS^^\x1e \036 \u001e记录分隔符第三级信息分隔符,用来分隔记录。RFC 7464 的 JSON Text Sequences 规定每条 JSON 记录前加一个 RS,有些日志与流式接口按这个格式输出。
31(0x1F)US^_\x1f \037 \u001f单元分隔符最小一级信息分隔符,用来分隔字段。比逗号、Tab 更不容易与正文冲突,所以一些内部数据导出格式和数据库工具会用 US 和 RS 代替 CSV 的逗号与换行。
127(0x7F)DEL^?\x7f \177 \u007f删除7 位全为 1(1111111)。纸带时代打错了字,就把这一格的 7 个孔全打穿表示作废,所以它排在最后。它不在 0–31 之间,但同样是控制字符,因此控制字符一共 33 个。

回车 CR、换行 LF 与 CRLF:回车换行区别

CR LF 区别要从打字机说起:回车 CR(13)把字车推回行首,换行 LF(10)把纸往上卷一行,两个动作合起来才是「另起一行」。 到了计算机上,各系统只挑了其中一种或两种来表示行尾,于是有了今天的三种换行。

三种换行约定:Windows、Unix 与经典 Mac OS
系统行尾ASCII 码转义写法
Windows、HTTP / SMTP 等网络协议CR+LF13 10\r\n
Unix、Linux、macOSLF10\n
经典 Mac OS(9 及以前)CR13\r

Ctrl 组合键和控制字符:Ctrl+C、Ctrl+D、Ctrl+Z 为什么能控制终端

终端里的 Ctrl 组合键发出的就是 ASCII 控制字符,规则是把字母的码值和 64 做异或(等价于大写字母减 64):Ctrl+A 是 1,Ctrl+C 是 3,Ctrl+[ 是 27 也就是 ESC, 所以在 vim 里按 Ctrl+[ 和按 Esc 键效果一样。这种 ^C 式的写法叫 Caret 写法,终端回显和 cat -v 都用它显示不可见字符。

终端里常用的 Ctrl 组合键:发出哪个 ASCII 控制字符、实际效果是什么
按键发出的字符实际效果
Ctrl+C3 号 ETX(正文结束)Unix 终端里 Ctrl+C 会让终端驱动发 SIGINT 中断前台进程;Windows 控制台也把 Ctrl+C 当作中断
Ctrl+D4 号 EOT(传输结束)Unix 终端行首按 Ctrl+D 表示输入结束(EOF),Python、bash 交互界面会因此退出
Ctrl+Z26 号 SUB(替换)Windows 控制台:Ctrl+Z 回车表示输入结束;Unix 终端:Ctrl+Z 挂起前台进程,fg 可恢复
Ctrl+S19 号 DC3(设备控制 3(XOFF))设备控制码,通常用作软件流控的 XOFF:「先停一下」。终端里按 Ctrl+S 就会发出它,输出被暂停,看起来像程序卡死,按 Ctrl+Q 恢复。
Ctrl+Q17 号 DC1(设备控制 1(XON))设备控制码,通常用作软件流控的 XON:「可以继续发了」。终端按 Ctrl+S 后画面像卡死了一样,按 Ctrl+Q 发出 XON 就能恢复。

扩展 ASCII 码表(128–255)没有统一标准

网上搜到的扩展 ASCII 码表常常互相矛盾,原因是 ASCII 本身只定义到 127,ASCII 码 128-255 这一段由各家码页自行填充,从来没有一张「标准扩展 ASCII」。 最常被叫作扩展 ASCII 的有三张:ISO-8859-1(Latin-1 码表)、Windows-1252 和 DOS 时代的 CP437 码表。三者在 0xA0 以后 Latin-1 与 1252 完全一致,差异集中在 0x80–0x9F 这一段,见下表。

扩展 ASCII 差异段 0x80–0x9F:ISO-8859-1、Windows-1252、CP437 三张码页对照
字节ISO-8859-1 (Latin-1)Windows-1252CP437 (DOS)
128(0x80)控制字符 PAD€(U+20AC)Ç(U+00C7)
129(0x81)控制字符 HOP未定义ü(U+00FC)
130(0x82)控制字符 BPH‚(U+201A)é(U+00E9)
131(0x83)控制字符 NBHƒ(U+0192)â(U+00E2)
132(0x84)控制字符 IND„(U+201E)ä(U+00E4)
133(0x85)控制字符 NEL…(U+2026)à(U+00E0)
134(0x86)控制字符 SSA†(U+2020)å(U+00E5)
135(0x87)控制字符 ESA‡(U+2021)ç(U+00E7)
136(0x88)控制字符 HTSˆ(U+02C6)ê(U+00EA)
137(0x89)控制字符 HTJ‰(U+2030)ë(U+00EB)
138(0x8A)控制字符 VTSŠ(U+0160)è(U+00E8)
139(0x8B)控制字符 PLD‹(U+2039)ï(U+00EF)
140(0x8C)控制字符 PLUŒ(U+0152)î(U+00EE)
141(0x8D)控制字符 RI未定义ì(U+00EC)
142(0x8E)控制字符 SS2Ž(U+017D)Ä(U+00C4)
143(0x8F)控制字符 SS3未定义Å(U+00C5)
144(0x90)控制字符 DCS未定义É(U+00C9)
145(0x91)控制字符 PU1‘(U+2018)æ(U+00E6)
146(0x92)控制字符 PU2’(U+2019)Æ(U+00C6)
147(0x93)控制字符 STS“(U+201C)ô(U+00F4)
148(0x94)控制字符 CCH”(U+201D)ö(U+00F6)
149(0x95)控制字符 MW•(U+2022)ò(U+00F2)
150(0x96)控制字符 SPA–(U+2013)û(U+00FB)
151(0x97)控制字符 EPA—(U+2014)ù(U+00F9)
152(0x98)控制字符 SOS˜(U+02DC)ÿ(U+00FF)
153(0x99)控制字符 SGCI™(U+2122)Ö(U+00D6)
154(0x9A)控制字符 SCIš(U+0161)Ü(U+00DC)
155(0x9B)控制字符 CSI›(U+203A)¢(U+00A2)
156(0x9C)控制字符 STœ(U+0153)£(U+00A3)
157(0x9D)控制字符 OSC未定义¥(U+00A5)
158(0x9E)控制字符 PMž(U+017E)₧(U+20A7)
159(0x9F)控制字符 APCŸ(U+0178)ƒ(U+0192)

ASCII 和 Unicode 的区别、ASCII 和 UTF-8 的关系

ASCII 是 Unicode 的前 128 个码点:A 在 ASCII 里是 65,在 Unicode 里是 U+0041,数值完全相同。UTF-8 编码下这 128 个字符各占 1 个字节,与 ASCII 的字节一模一样, 这正是 UTF-8 能向下兼容老系统的原因。汉字、emoji 都不是 ASCII,全角字母 A 也不是——它是 U+FF21,对应的半角 ASCII 字符才是 A。

另一个常见混淆是键盘键码:JavaScript 的 keyCode 标识物理按键,A 键不论大小写都是 65;小键盘 0 的 keyCode 是 96,而 96 在 ASCII 码表里是反引号 `。键码不是 ASCII 码。

码表数据版本 2026.10,更新于 2026-10。ASCII 码位与控制字符缩写依据 ANSI X3.4-1986 与 IETF RFC 20,字符英文名与控制图形符号依据 Unicode 字符数据库, CP437 与 Windows-1252 映射依据 Unicode.org 发布的码页映射表;中文名称与用途说明为本站原创。扩展码页仅收录 ISO-8859-1、Windows-1252、CP437 三种。