制御文字

コンピューティングと電気通信において、制御文字（せいぎょもじ、）とは、文字コードの規格で定義される文字のうち、ディスプレイ・プリンター・通信装置などに対して、特別な動作（制御）をさせるために使う文字である。制御キャラクタともいい、情報処理用語規格では「制御機能文字」と呼ばれている。
「文字」という名前であるがディスプレイやプリンターには表示されない。そのため、非表示文字（ひひょうじもじ、、印字不可文字）とも言う。それに対し、制御文字以外の表示可能な文字を図形文字（）という。図形文字と制御文字は電気信号上は区別がなく、同じデータストリーム上に現われる。これをという。
制御文字にどのような文字コードを割り当てるかは、ASCII、EBCDICなどの文字コード体系により異なる。ASCIIでは0から31および127が制御文字に割り当てられている（技術的にはこれをという）。ISO 8859で定義される拡張ASCIIでは、これに128から159までの制御文字を追加した。これはと呼ばれる。
これらの65個の制御文字はUnicodeに引き継がれた。Unicodeではさらに制御文字を追加しているが、これはゼロ幅非接合子のようなフォーマット用文字とは区別される。
EBCDICには、ASCIIの65個の制御文字全てのほか、主としてIBMの周辺機器を制御するための追加の制御文字が含まれている。
歴史.
モールス符号のは、制御文字の一形態と言える。
1870年に制定されたBaudot Codeで、最初の制御文字 NUL と DEL が導入された。1901年にドナルド・マレーがキャリッジ・リターン (CR) とラインフィード (LF) を追加することを提案するなど、Baudot Codeには様々な制御文字が追加された。ベル文字は送信相手のベルを鳴らしてオペレータに通知するための文字で、初期のテレタイプ端末で追加された。
表現法.
制御文字自体は表示できない文字であるため、それを別の方法で表現する必要がある。以下に、ASCIIのベル文字での例を示す。
ASCII.
ASCIIの制御文字には以下のものを含む。
Unicode.
Unicodeでは、制御文字は U+0000 - U+001F（C0制御コード）、U+007F（削除文字）、 U+0080 - U+009F（C1制御コード）である。これらのの名前は"Cc"である。フォーマット用コードはこれと区別して、一般カテゴリは"Cf"である。Ccの制御文字はUnicodeでは名前がついておらず、正式には"<control-001A>"のように表示される。