【あすきー】

ASCII とは?

最終更新:
💡 英数字などを、7ビットの番号で表す

英数字・記号・制御文字などを0〜127の番号で表す7ビットの文字コード。128個のコード位置、文字と数値の違い、UTF-8との互換性を解説します。

📌 このページのポイント
ASCII:文字に付けた番号0〜127の128個のコード位置文字など10進数7ビットA651000001a9711000010480110000SP(空白)320100000LF(改行)100001010DEL1271111111文字の「0」の番号は48。数値の0とは区別
文字・制御文字と番号の対応をRFC 20の表から抜粋。2進数は7桁で示し、改行など見えない文字も含めています。
ひよこ ひよこ
ASCIIは、何を決めているの?
ペンギン先生 ペンギン先生
文字と番号の対応だよ。例えば大文字のAは65、小文字のaは97、数字の文字0は48。文字を送ったり保存したりするときに、同じ番号を同じ意味で扱うための規則だ。
ひよこ ひよこ
0〜127なら、127種類なの?
ペンギン先生 ペンギン先生
0も含めるので128個だね。7ビットでは2の7乗、つまり128通りを表せる。ただし全部が見える文字ではない。LFという改行の制御文字なども含まれるよ。
ひよこ ひよこ
文字の0と、数値の0は違うの?
ペンギン先生 ペンギン先生
そうだね。図の48は、文字としての0に対応する番号だ。計算に使う数値の0と同じ表現だとは限らない。ファイルや通信の内容を読むときは、文字列なのか数値なのかを区別しよう。
ひよこ ひよこ
日本語もASCIIで表せる?
ペンギン先生 ペンギン先生
漢字やかなはASCIIの範囲に含まれない。日本語を扱うにはUTF-8など別の文字エンコーディングを使う。ASCIIの範囲だけで、世界中の文字を表すことはできないよ。
ひよこ ひよこ
UTF-8とは、どうつながっているの?
ペンギン先生 ペンギン先生
UnicodeのU+0000〜U+007Fは、UTF-8でもASCIIと同じ00〜7Fの1バイトで表す。そのためASCIIだけのデータは、正しいUTF-8のデータでもある。UTF-8全体が7ビットという意味ではないよ。
もっと詳しく知りたい人へ

拡張ASCIIなら、128〜255の対応も一つに決まる?

「拡張ASCII」という名前だけでは、どの文字に対応するかは決まりません。ASCII自体の範囲は0〜127です。範囲外を扱うときは、実際に使う文字エンコーディングを特定します。UTF-8でも、128以上のバイトを単独のASCII文字とは読みません。

半角のAと全角のAは、ASCIIでは同じ?

違います。ASCIIにあるのは半角のAです。全角のAはASCIIの範囲外にある別のUnicode文字で、UTF-8でも別のバイト列になります。見た目が似ていても、文字として同じと判断しないようにします。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ASCII」って出てきたら「英数字・記号・制御文字などを0〜127の番号で表す7ビットの文字コード」と思えばだいたいOK!
📖 おまけ:英語の意味
「American Standard Code for Information Interchange」 = アメリカ標準情報交換コード
💬 情報を交換するために、文字と番号の対応を定めた規格です。「すべての文字コードの元祖」とはせず、RFC 20に掲載された7ビットのコード表とUTF-8の仕様を参考に説明します。

参考資料

← 用語集にもどる