制御文字
ASCII

ASCIIの制御文字には以下のものを含む。
| CS | 10進 | 16進 | 略号 | 記号 | 名称 | C言語 | 説明 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| ^@ | 00 | 00 | NUL | ␀ | 空白   Null | \0 | 元々は、紙テープの末端のデータが書き込まれていない箇所をコンピュータが読み飛ばすために、「何もしない」コードとして定められたものだった。後に、テレタイプ端末がキャリッジ・リターンや行送りを物理的にするための時間を稼ぐために入れられるようにもなった。現在では、C言語などで文字列の終端を表すのに用いられる。 |
| ^A | 01 | 01 | SOH | ␁ | ヘッディング開始 Start of Heading |  | 通信伝文中のヘッダ開始を表す。 |
| ^B | 02 | 02 | STX | ␂ | テキスト開始 Start of Text |  | 通信伝文中のテキスト部分の開始を表す。 |
| ^C | 03 | 03 | ETX | ␃ | テキスト終結 End of Text |  | 通信伝文中のテキスト部分の終了を表す。また、Control-Cはプログラムやプロセスに割り込むためにも用いられる。 |
| ^D | 04 | 04 | EOT | ␄ | 伝送終了 End of Transmission |  | データ送信側がデータ送信終了時にデータ受信先にEOTを送る。 |
| ^E | 05 | 05 | ENQ | ␅ | 問い合わせ Enquiry |  | データ送信側がデータ送信しようというときに、データ受信側にデータに先立ってENQを送る。データ受信先は、データ受信できる状態であればデータ送信側にACKを送り、データ受信できない状態であればNAKを送る。データ送信側はACKを受信した場合にデータを送り、NAKを受信した場合はデータ送信を断念したり時間を置いて再度ENQ送信するなどの処理を行なう。 |
| ^F | 06 | 06 | ACK | ␆ | 肯定応答 Acknowledge |  | 受信したデータにCRCなどの異常がない場合や、ENQを受信後にデータ受信ができる状態であれば、送信側にACKを送る。 |
| ^G | 07 | 07 | BEL | ␇ | ベル Bell | \a | 元々は通信相手の端末のベルを鳴らすのに使われていた。現在では物理的な鐘ではなくビープ音を鳴らす。端末エミュレータでは音を鳴らさずにウィンドウを点滅させるものもある。 |
| ^H | 08 | 08 | BS | ␈ | 後退 Backspace | \b | 元々はカーソルを手前（左）に移動させ、重ね打ちをしてアクセント符号つきの文字を打ち出すために使用されていた。現在では、カーソルを手前（左）に移動させてそこの文字を削除するために用いられる。 |
| ^I | 09 | 09 | HT | ␉ | 水平タブ Horizontal Tabulation | \t | 水平方向のタブ。テキストデータのデータの区切りに使うこともある。 |
| ^J | 10 | 0A | LF | ␊ | 改行 Line Feed | \n | Line Feedは「行送り」の意味。タイプライターでは、カーソルを桁（水平方向）はそのままで1行下へ移動させる。UNIXでは、LF単独で改行コードとして扱われ、行送りと桁の復帰を行う。MS-DOSやWindowsでは、CRとLFを併用する。 |
| ^K | 11 | 0B | VT | ␋ | 垂直タブ Vertical Tabulation | \v | 垂直方向のタブ。 |
| ^L | 12 | 0C | FF | ␌ | 書式送り Form Feed | \f | プリンタでは、次のページを給紙する。多くのプログラミング言語では空白として扱われ、コードの論理的区分の分け目として使用される。いくつかの端末エミュレータでは、画面をクリアする。プレーンテキストで記述されるRFCでは、ページ分割（英語版）文字として使用される。 |
| ^M | 13 | 0D | CR | ␍ | 復帰 Carriage Return | \r | 元はカーソルを同じ行の先頭の桁（左端）へ移動させるのに使われた。macOSよりも前のClassic Mac OSでは、CR単独で改行コードとして扱われ、行送りと桁の移動を行う。MS-DOSやWindowsでは、CRとLFを併用する。 |
| ^N | 14 | 0E | SO | ␎ | シフトアウト Shift Out |  | 別の文字コードセットに遷移する。 |
| ^O | 15 | 0F | SI | ␏ | シフトイン Shift In |  | 通常の文字コードセットに遷移する。 |
| ^P | 16 | 10 | DLE | ␐ | 伝送制御拡張 Data Link Escape |  | バイナリ通信（データそのものに制御文字を含むような通信）であることを表すために使う。DLE自体をバイナリデータに含める場合はDLEを2つ重ねて送信する。データ受信側はDLEが2つ重ねられている場合は、DLEというバイナリデータ（制御文字でなく）を受信したと解釈する。こうしたことは、通常のアプリケーションでは意識しなくてもいいことが多い。しかし、プロトコルアナライザなどで通信データを表示した場合、DLEが2つ重ねられていることを知らないと、おかしな通信データと誤解しかねない。 |
| ^Q | 17 | 11 | DC1 | ␑ | 装置制御1 Device Control 1 |  | この4つのコードは装置制御のために予約されている。コードの解釈は接続している装置に依存する。主として、DC1とDC2は装置を作動させる目的で、DC3とDC4は装置を休止または停止させる目的で使用される。実際の用法としてはDC1とDC3をソフトウェアフロー制御（英語版）のために用いるのがデファクト・スタンダードとなっており、その場合、DC1はXON、DC3はXOFFと呼ばれる。テキストデータ受信側はテキスト送信側に、テキスト送信の一時停止を求めるためXOFF (DC3) を送信し、一時停止を解除するためXON (DC1) を送信する。XOFFを受信したテキストデータ送信側は、XONを受信するまでテキストデータの送信を一時停止する。なお、バイナリ通信ではDC1、DC3によるフロー制御は行なわない。バイナリ通信ではDC1、DC3は単なるバイナリデータであり、制御文字と解釈しないからである。 |
| ^R | 18 | 12 | DC2 | ␒ | 装置制御2 Device Control 2 |  | この4つのコードは装置制御のために予約されている。コードの解釈は接続している装置に依存する。主として、DC1とDC2は装置を作動させる目的で、DC3とDC4は装置を休止または停止させる目的で使用される。実際の用法としてはDC1とDC3をソフトウェアフロー制御（英語版）のために用いるのがデファクト・スタンダードとなっており、その場合、DC1はXON、DC3はXOFFと呼ばれる。テキストデータ受信側はテキスト送信側に、テキスト送信の一時停止を求めるためXOFF (DC3) を送信し、一時停止を解除するためXON (DC1) を送信する。XOFFを受信したテキストデータ送信側は、XONを受信するまでテキストデータの送信を一時停止する。なお、バイナリ通信ではDC1、DC3によるフロー制御は行なわない。バイナリ通信ではDC1、DC3は単なるバイナリデータであり、制御文字と解釈しないからである。 |
| ^S | 19 | 13 | DC3 | ␓ | 装置制御3 Device Control 3 |  | この4つのコードは装置制御のために予約されている。コードの解釈は接続している装置に依存する。主として、DC1とDC2は装置を作動させる目的で、DC3とDC4は装置を休止または停止させる目的で使用される。実際の用法としてはDC1とDC3をソフトウェアフロー制御（英語版）のために用いるのがデファクト・スタンダードとなっており、その場合、DC1はXON、DC3はXOFFと呼ばれる。テキストデータ受信側はテキスト送信側に、テキスト送信の一時停止を求めるためXOFF (DC3) を送信し、一時停止を解除するためXON (DC1) を送信する。XOFFを受信したテキストデータ送信側は、XONを受信するまでテキストデータの送信を一時停止する。なお、バイナリ通信ではDC1、DC3によるフロー制御は行なわない。バイナリ通信ではDC1、DC3は単なるバイナリデータであり、制御文字と解釈しないからである。 |
| ^T | 20 | 14 | DC4 | ␔ | 装置制御4 Device Control 4 |  | この4つのコードは装置制御のために予約されている。コードの解釈は接続している装置に依存する。主として、DC1とDC2は装置を作動させる目的で、DC3とDC4は装置を休止または停止させる目的で使用される。実際の用法としてはDC1とDC3をソフトウェアフロー制御（英語版）のために用いるのがデファクト・スタンダードとなっており、その場合、DC1はXON、DC3はXOFFと呼ばれる。テキストデータ受信側はテキスト送信側に、テキスト送信の一時停止を求めるためXOFF (DC3) を送信し、一時停止を解除するためXON (DC1) を送信する。XOFFを受信したテキストデータ送信側は、XONを受信するまでテキストデータの送信を一時停止する。なお、バイナリ通信ではDC1、DC3によるフロー制御は行なわない。バイナリ通信ではDC1、DC3は単なるバイナリデータであり、制御文字と解釈しないからである。 |
| ^U | 21 | 15 | NAK | ␕ | 否定応答 Negative Acknowledge |  | 受信したデータにCRCなどの異常があった場合や、ENQを受信後にデータ受信ができる状態でないなら送信側にNAKを送る。 |
| ^V | 22 | 16 | SYN | ␖ | 同期信号 Synchronous Idle |  | キャラクタ同期方式の通信で、同期を取るために使う。 |
| ^W | 23 | 17 | ETB | ␗ | 伝送ブロック終結 End of Transmission Block |  | 通信電文の1ブロック（一連のまとまりのある複数の伝文）が終了したことを表す。 |
| ^X | 24 | 18 | CAN | ␘ | 取り消し Cancel |  | 先行するデータにエラーがある、または、無視してほしいことを示す。 |
| ^Y | 25 | 19 | EM | ␙ | 媒体終結 End of Medium |  | 受信データを記録する媒体（紙や磁気テープなど）が、記録できる範囲の末端まで到達したことを表す。 |
| ^Z | 26 | 1A | SUB | ␚ | 置換 Substitute Character |  | 本来は、伝送制御文字として、不明瞭な、または、無効な文字を受信したことを表す。しかし、下位レイヤで誤り検出訂正が行われるため、この用途で用いる必要はほぼなく、他の用途で用いられる。テキストファイルのファイル終端 (EOF) を表すのによく使われる。 |
| ^[ | 27 | 1B | ESC | ␛ | 拡張 Escape |  | キーボードのEscキーを押すとこの文字がシステムに送られる。ソフトウェアのユーザインターフェースでは、画面・メニュー・モードから出るのに用いられる。プリンタや端末などの装置制御プロトコルでは、後に続く文字を特別な解釈をする（エスケープシーケンス）ことを指示するために用いられる。 |
| ^\ | 28 | 1C | FS | ␜ | ファイル分離 File Separator |  | データ構造のフィールドを記録する区切り文字として使われる。階層的な構造の場合、USが最も低いレベル（プレーンテキストのデータアイテム）を分割し、 RS, GS, FSはそれぞれ下のレベルのアイテムからなるグループを分ける。 |
| ^] | 29 | 1D | GS | ␝ | グループ分離 Group Separator |  | データ構造のフィールドを記録する区切り文字として使われる。階層的な構造の場合、USが最も低いレベル（プレーンテキストのデータアイテム）を分割し、 RS, GS, FSはそれぞれ下のレベルのアイテムからなるグループを分ける。 |
| ^^ | 30 | 1E | RS | ␞ | レコード分離 Record Separator |  | データ構造のフィールドを記録する区切り文字として使われる。階層的な構造の場合、USが最も低いレベル（プレーンテキストのデータアイテム）を分割し、 RS, GS, FSはそれぞれ下のレベルのアイテムからなるグループを分ける。 |
| ^_ | 31 | 1F | US | ␟ | ユニット分離 Unit Separator |  | データ構造のフィールドを記録する区切り文字として使われる。階層的な構造の場合、USが最も低いレベル（プレーンテキストのデータアイテム）を分割し、 RS, GS, FSはそれぞれ下のレベルのアイテムからなるグループを分ける。 |
| ^? | 127 | 7F | DEL | ␡ | 抹消 Delete |  | 元々は紙テープで誤って穿孔した箇所の全部のビットの穴をあけて、データを抹消するのに用いられた。現代のコンピュータでは、カーソルのすぐ右の文字を削除するのに使われる。 |