C0与C1控制字符
C0 (ASCII及其派生)

ASCII定义了32个控制字符，再加上一个Delete字符。
在当时（20世纪六七十年代）这麽多控制字符都是需要的，因为多字节表示的控制序列要求终端机实现一个状态机，这在当时的电传或机械终端非常困难。但现在仅有少数控制字符还被使用（如空白符范畴的BS, TAB, LF, VT, FF, CR），其它一些字符无用，还有一些改变了用途（如NUL表示C语言字符串的终止）。
一些传输协议如ANPA-1312对控制字符SOH, STX, ETX 与 EOT做了扩展使用。其它著名的如BEL, ACK, NAK 与 SYN现在过时了。
现代终端有很多控制符可通过多字节的ANSI转义序列(开头为ESC 与 '['）表示。
ASCII控制字符的标准最初定义为ANSI X3.4。对于ISO/IEC 2022扩展机制，称为主动的C0控制字符集，采用八进制表示0x1B 0x21 0x40 (ESC ! @).
| Seq | Dec | Hex | 缩写 | 符号 | 名字 | C | 描述 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| ^@ | 00 | 00 | NUL | ␀ | Null | \0 | 最初用于在穿孔纸带上留下空白位置。后用于需要终端花时间处理的编码（如打印终端处理回车换行）之后的位置。现在用于C语言字符串的终止字节. |
| ^A | 01 | 01 | SOH | ␁ | Start of Heading |  | 消息头部第一个字符。在Hadoop，用作域分隔符。 |
| ^B | 02 | 02 | STX | ␂ | Start of Text |  | 消息正文第一个字符，也标志着消息头部的最后一个字符。 |
| ^C | 03 | 03 | ETX | ␃ | End of Text |  | 消息正文结束。常用作"break"字符(Ctrl-C)以打断或者终止程序或进程。 |
| ^D | 04 | 04 | EOT | ␄ | End of Transmission |  |  |
| ^E | 05 | 05 | ENQ | ␅ | Enquiry |  | 信号用于触发对方一个响应，查看对方是否仍然在线。 |
| ^F | 06 | 06 | ACK | ␆ | Acknowledge |  | 对ENQ的响应，或表示成功收到消息。 |
| ^G | 07 | 07 | BEL | ␇ | Bell, Alert | \a | 最初用作在终端上响铃。后用于在没有物理铃声的终端上蜂鸣。也可用于在屏幕上inverse video (a visual bell). |
| ^H | 08 | 08 | BS | ␈ | Backspace | \b | 向左移动游标一个位置。对于输入，这会删除游标左侧的一个字符。对于输出，由于早期计算机技术对于已打印字符不能擦除，该控制字符有时用于叠加打印输出附加符号字符。例如， à可用3字符序列a BS `生成。现在这种方法已经过时了，通常不被支持。 |
| ^I | 09 | 09 | HT | ␉ | Character Tabulation, Horizontal Tabulation | \t | 定位到下一个制表位。 |
| ^J | 10 | 0A | LF | ␊ | Line Feed | \n | 在打印机、终端上，移动光标到下一行但不改变所在的列的位置。在Unix上，用于表示行结束。在DOS、Windows以及很多网络协议表示跟在CR之后作为行结束符。 |
| ^K | 11 | 0B | VT | ␋ | Line Tabulation, Vertical Tabulation | \v | 定位到下一行的制表位。 |
| ^L | 12 | 0C | FF | ␌ | Form Feed | \f | 打印机加载下一页。许多编程语言视作空白符或用作代码的逻辑分隔符。某些终端模拟器上清屏。在某些常见文本文件用作分页符，如IETF出版的RFCs。 |
| ^M | 13 | 0D | CR | ␍ | Carriage Return | \r | 最初，用于把光标移动到所在行的第0列。在classic Mac OS (早于Mac OS X)以及早期的电脑Apple II 与 Commodore 64表示行结束。DOS, Windows, 与很多网络协议用于在LF之前共同表示行结束。回车键发送这一字符，但很多终端会把它转化为行结束符。 |
| ^N | 14 | 0E | SO | ␎ | Shift Out |  | 切换到可选字符集。 |
| ^O | 15 | 0F | SI | ␏ | Shift In |  | Shift Out之后，切换回正常字符集。 |
| ^P | 16 | 10 | DLE | ␐ | Data Link Escape |  | 使得随后的八进制数被解释为原生数据而不是控制字符或可打印字符。返回到正常使用则依赖于实现。   |
| ^Q | 17 | 11 | DC1 | ␑ | Device Control One (XON) |  | 这4个控制字符保留用于设备控制，其解释依赖于所连接的设备。 DC1与DC2主要用于表示设备被激活；DC3 与 DC4主要表示暂停或关闭设备。实际上DC1与DC3 (称作XON 与 XOFF) 成为software flow control的事实标准. |
| ^R | 18 | 12 | DC2 | ␒ | Device Control Two |  | 这4个控制字符保留用于设备控制，其解释依赖于所连接的设备。 DC1与DC2主要用于表示设备被激活；DC3 与 DC4主要表示暂停或关闭设备。实际上DC1与DC3 (称作XON 与 XOFF) 成为software flow control的事实标准. |
| ^S | 19 | 13 | DC3 | ␓ | Device Control Three (XOFF) |  | 这4个控制字符保留用于设备控制，其解释依赖于所连接的设备。 DC1与DC2主要用于表示设备被激活；DC3 与 DC4主要表示暂停或关闭设备。实际上DC1与DC3 (称作XON 与 XOFF) 成为software flow control的事实标准. |
| ^T | 20 | 14 | DC4 | ␔ | Device Control Four |  | 这4个控制字符保留用于设备控制，其解释依赖于所连接的设备。 DC1与DC2主要用于表示设备被激活；DC3 与 DC4主要表示暂停或关闭设备。实际上DC1与DC3 (称作XON 与 XOFF) 成为software flow control的事实标准. |
| ^U | 21 | 15 | NAK | ␕ | Negative Acknowledge |  | 由一台设备发给与它相连的另一台设备，作为负面响应结果。在点对点系统中，表示前一个接收数据块有错，接收方已经准备接受重传数据块。在多点系统中，NAK表示没有准备好回复轮询。 |
| ^V | 22 | 16 | SYN | ␖ | Synchronous Idle |  | 用于同步传输系统，表示在数据终端设备间同步校准成功，没有数据需要传输。 |
| ^W | 23 | 17 | ETB | ␗ | End of Transmission Block |  | 指示数据传输块的结尾。 |
| ^X | 24 | 18 | CAN | ␘ | Cancel |  | 指示之前的数据有错应该忽视。 |
| ^Y | 25 | 19 | EM | ␙ | End of medium |  | 指示纸或磁带的可用部分的结束之处。 |
| ^Z | 26 | 1A | SUB | ␚ | Substitute |  | 最初用作传输控制字符指示收到混乱或者无效的字符。也被用作当不使用表示有错的带内信令时，特别是采用错误检测与纠正的鲁棒方法，而出错极为罕见情形。DOS, Windows、CP/M的派生系统，用作指示文件结束，包括终端打字输入或存在磁盘上的文本文件。 |
| ^[ | 27 | 1B | ESC | ␛ | Escape | \e | 键盘上的Esc将发送此字符。用于软件的人机界面退出屏幕、菜单或模式，或设备控制协议（如打印机或终端）通知随后是一个特殊命令序列而不是正常文本。基于ISO/IEC 2022的系统，即使使用另一个C0控制字符集，这个八进制数总是表示转义字符。  |
| ^\ | 28 | 1C | FS | ␜ | File Separator |  | 分隔数据结构的域的分隔符。层次由高到低。 |
| ^] | 29 | 1D | GS | ␝ | Group Separator |  | 分隔数据结构的域的分隔符。层次由高到低。 |
| ^^ | 30 | 1E | RS | ␞ | Record Separator |  | 分隔数据结构的域的分隔符。层次由高到低。 |
| ^_ | 31 | 1F | US | ␟ | Unit Separator |  | 分隔数据结构的域的分隔符。层次由高到低。 |
虽然不在C0控制字符集范围内，但ISO/IEC 2022定义了下述两个字符，具有控制符的特点。
|   | 32 | 20 | SP | ␠ | Space |  | 空格是一个图形字符。 |
| ^? | 127 | 7F | DEL | ␡ | Delete |  | 最初用于穿孔纸带上删除一个字符。因为任何位置的字符都可以被全部穿孔（全1）。VT100兼容终端，按键⌫产生这个字符，常称为backspace，但不对应于PC键盘的delete key。 |