コンピューティングと電気通信において、制御文字(せいぎょもじ、英: control character)とは、文字コードの規格で定義される文字のうち、ディスプレイ・プリンター・通信装置などに対して、特別な動作(制御)をさせるために使う文字である。制御キャラクタともいい、情報処理用語規格では「制御機能文字」と呼ばれている。
「文字」という名前であるがディスプレイやプリンターには表示されない。そのため、非表示文字(ひひょうじもじ、英: non-printing character、印字不可文字)とも言う。それに対し、制御文字以外の表示可能な文字を図形文字(英: graphic character)という。図形文字と制御文字は電気信号上は区別がなく、同じデータストリーム上に現われる。これを帯域内信号方式という。
制御文字にどのような文字コードを割り当てるかは、ASCII、EBCDICなどの文字コード体系により異なる。ASCIIでは0から31および127が制御文字に割り当てられている(技術的にはこれをC0制御コードという)。ISO 8859で定義される拡張ASCIIでは、これに128から159までの制御文字を追加した。これはC1制御コードと呼ばれる。
これらの65個の制御文字はUnicodeに引き継がれた。Unicodeではさらに制御文字を追加しているが、これはゼロ幅非接合子のようなフォーマット用文字とは区別される。
EBCDICには、ASCIIの65個の制御文字全てのほか、主としてIBMの周辺機器を制御するための追加の制御文字が含まれている。
歴史
モールス符号の交信略号は、制御文字の一形態と言える。
1870年に制定されたBaudot Codeで、最初の制御文字 NUL と DEL が導入された。1901年にドナルド・マレーがキャリッジ・リターン (CR) とラインフィード (LF) を追加することを提案するなど、Baudot Codeには様々な制御文字が追加された。ベル文字は送信相手のベルを鳴らしてオペレータに通知するための文字で、初期のテレタイプ端末で追加された。
表現法
制御文字自体は表示できない文字であるため、それを別の方法で表現する必要がある。以下に、ASCIIのベル文字での例を示す。
- 符号点: 十進法 7、十六進法 0x07
- 略号(通常は3文字の大文字): BEL
- 略号で表した表示用の図形文字: Unicode U 2407 (␇), "symbol for bell"
- ISO 2047で定められた制御文字の記号: Unicode U 237E (⍾), "graphic for bell"
- キャレット記法(00xxxxxで表される制御文字について、10xxxxxの位置にある大文字のラテン文字とキャレットで表す方法): ^G
- エスケープシーケンス(C言語などのprintf文で用いられる): \a
ASCII
ASCIIの制御文字には以下のものを含む。
Unicode
Unicodeでは、制御文字は U 0000 - U 001F(C0制御コード)、U 007F(削除文字)、 U 0080 - U 009F(C1制御コード)である。これらの一般カテゴリ(General Category)の名前は"Cc"である。フォーマット用コードはこれと区別して、一般カテゴリは"Cf"である。Ccの制御文字はUnicodeでは名前がついておらず、正式には"
関連項目
- 空白文字
脚注
注釈
出典
外部リンク
- ISO IR 1(ISO 646のC0文字セット) (PDF)




