コンピューティングにおいて、削除文字(さくじょもじ、delete character)とは、制御文字の一種で、その部分のデータが消去されていることを示す。
ASCIIでは最後に定義されており、十進数で127、十六進数で0x7Fとなる[1]。キャレット記法では ^?
と表され、Unicodeでは制御文字の図形表現として ␡ (U+2421)が定義されている。
キーボードで(文字の削除ではなく)削除文字自体を入力する方法は、環境により異なる。Windowsのメモ帳(notepad.exe)では、Controlを押しながら⌫ Backspaceを押すと、このコードが入力される。
· | NUL | ||||||||||
• | · | • | • | CR | |||||||
• | · | • | LF | ||||||||
• | • | • | • | · | • | • | • | DEL | |||
• | · | SP | |||||||||
穿孔テープに記録されたASCII制御文字とスペース |
削除文字は当初、穿孔テープで文字が削除されたことを示すのに用いられた。穿孔テープに文字を間違えて穿孔してしまった場合は7ビット全ての穴を空け、コンピュータは穿孔テープを読み込むときにその箇所を読み飛ばす。いわば修正液のような使い方をしていた[2][3]。十六進数では、7ビットを消すには0x7F、8ビットを消すには0xFFで上書きすれば良い。ASR-33のようなテレタイプ端末では、1行は3つの制御文字、キャリッジリターン・ラインフィード・削除文字で終わっていた。最後の削除文字は、テレタイプ端末のプリントヘッドが物理的に右から左へ移動する時間を稼ぐために入れられた。VT100互換の端末では、Deleteと刻印されたキーを押すと制御文字(八進数で177)がホストへ送信された[4][5]。VT510互換の端末では、⌫と刻印されたキーを押すと制御文字が発生する。このキーは現代のコンピュータでは「バックスペース」と呼ばれるもので、削除キーとは異なる[6]。
UNIX系のオペレーティングシステムでは、stty において手前(左)の文字を削除する制御文字として使用されている。これは、穿孔テープにおける削除文字の本来の機能とは異なる。
DOSやWindowsでは、制御文字を使用していない。手前(左)の文字を削除するのには後退(0x08
または control-H
)が使用される。Win32 consoleで使用されるEGA/VGAフォントには「家」の記号(⌂)が127 (0x7F
) に定義されている(Code page 437を参照)。