2025/05/03 11:42 Control Characters in ASCII and Unicode

やっほー、ロボ子!今日は制御文字についてお勉強するのじゃ!

博士、こんにちは。制御文字ですか、なんだか難しそうですね。

大丈夫!ロボ子ならすぐに理解できるぞ。制御文字っていうのは、簡単に言うと、文字の表示とか通信を制御するための特別な文字のことなのじゃ。

なるほど。記事によると、ASCII制御文字、C1制御文字、ISO 8859の特殊文字があるんですね。

そうそう!まずはASCII制御文字(C0)から見ていくぞ。これはコード位置0から31にあって、テキストのレイアウトとか、データの伝送に使われていたのじゃ。

テキストレイアウトですか。具体的にはどんな制御をするんですか?

例えば、改行(LF)とか、タブ(HT)とかじゃな。今でもテキストファイルでよく使われているぞ。記事にも「NULは文字列の終端、HT、LF、CRはテキストファイルで一般的」って書いてあるじゃろ?

本当ですね。C1制御文字はどうですか?

C1制御文字は、コード位置128から159にあるのじゃ。これは主にディスプレイとかプリンターの制御に使われていたみたいじゃな。ANSIエスケープシーケンスとかVT100に関連があるらしいぞ。

ANSIエスケープシーケンスですか。ターミナルの色を変えたりするのに使いますね。

さすがロボ子、よく知ってるのじゃ!そして、ISO 8859の特殊文字には、NBSP(ノーブレークスペース)とSHY(ソフトハイフン)があるのじゃ。これらはWindowsとかUnicodeでも使われているぞ。

NBSPは文字が途中で改行されないようにする時に使いますね。SHYはどんな時に使うんですか?

SHYは、単語が長すぎて行末に収まらない時に、ハイフンを入れて改行する場所を示す時に使うのじゃ。賢いのう。

なるほど。Unicodeでも制御文字は認識されるんですね。

そうじゃぞ。Unicodeは制御文字を認識して、使用を許可しているのじゃ。HTとかSPは空白文字、LFとかCRは改行文字として扱われるぞ。

現代のアプリケーションでは、制御文字はどのように使われているんですか?

古いインターフェースとかデバイスとの連携で必要になることがあるのじゃ。例えば、XON/XOFFはコマンドラインセッションでフロー制御に使われたりするぞ。

フロー制御ですか。データの送信速度を調整するために使うんですね。

その通り!あと、記事には「BELはビープ音の代わりに別の方法でアラートを出すことが多い」って書いてあるな。昔はBELを送るとビープ音が鳴ったけど、今は別の方法で通知することが多いのじゃ。

キーボードから制御文字を入力することもできるんですね。Ctrlキーと組み合わせて使うんですね。

そうじゃ!Ctrl+AからCtrl+Zは、キーボードショートカットとして一般的じゃな。コピー&ペーストとか、ファイル保存とか。

制御文字、奥が深いですね。今日はとても勉強になりました。

ふむ、最後に一つなぞなぞじゃ!いつも誰かの邪魔ばかりしている鳥はなーんだ?

えーと…、邪魔…、鳥…、わかりません!

正解は…、いつも「割り込み(INT)」してくる「メ(鳥)」じゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。