C0与C1控制字符是ISO/IEC 2022定义的控制字符集。
C0控制字符集的码位范围00HEX–1FHEX;C1控制字符集的码位范围 80HEX–9FHEX。 默认的C0控制字符集起源于ISO 646 (ASCII)的定义。默认的C1控制字符集起源于ECMA-48 (后为ISO 6429)的定义。
Unicode
Unicode字符集定义了65个码位以兼容ISO/IEC 2022。Unicode控制字符覆盖了U+0000—U+001F (C0 控制字符), U+007F (delete), and U+0080—U+009F (C1 controls)。 Unicode仅对U+001C—U+001F, U+0009—U+000D, 与 U+0085限定了语义。其它控制字符的语义对Unicode透明,留给了高层协议。
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 ! @).SeqDecHex缩写符号名字C描述
^@0000NUL␀Null