ASCII (1963)(アスキー)
American Standard Code for Information Interchange。1963 年 ANSI 制定の 7bit 文字エンコーディング。0-127 の 128 文字 (制御文字 32 + 英数記号 95 + DEL) を定義、現代全エンコーディングの基盤として君臨する歴史的標準。
概要
ASCII (American Standard Code for Information Interchange) は、1963 年に米国 ANSI (American National Standards Institute) が制定した 7bit 文字エンコーディングで、現代のあらゆる文字エンコーディング (UTF-8/UTF-16/Shift_JIS/EUC-JP) の基盤として君臨する歴史的標準です。0-127 の 128 文字を定義し、内訳は制御文字 32 (00h-1Fh + 7Fh DEL)・英数記号 95 (20h-7Eh) で、英大文字 A-Z (41h-5Ah)・英小文字 a-z (61h-7Ah)・数字 0-9 (30h-39h) が含まれます。1963 年初版でリリースされ 1967 年改訂版で現在形が確定、その後 1986 年に ANSI X3.4-1986 として再標準化されました。日本語非対応のため日本では Shift_JIS・EUC-JP などの拡張エンコーディングが必要となりましたが、UTF-8 の最初の 128 字と完全互換のため、ASCII 文字のみで書かれた文書は現代の UTF-8 環境でもそのまま読めます。
主な特徴・仕組み
- 規格制定: 1963 年 ANSI X3.4 初版
- 改訂: 1967 年版で現在形確定、1986 年再標準化
- ビット数: 7bit (0-127 の 128 文字)
- 構成: 制御文字 32 + 英数記号 95 + DEL = 128
- 制御文字: 00h NUL・01h SOH・02h STX・03h ETX・04h EOT・05h ENQ・06h ACK・07h BEL・08h BS・09h HT・0Ah LF・0Bh VT・0Ch FF・0Dh CR・0Eh SO・0Fh SI・10h-1Fh その他制御・7Fh DEL
- 可視文字 (20h-7Eh): 空白・記号 (!"#$%&'()*+,-./)・数字 (0-9)・記号 (:;<=>?@)・英大文字 (A-Z)・記号 ([]^_`)・英小文字 (a-z)・記号 ({|}~)
- 未使用: 8bit (80h-FFh) は ASCII 範囲外、Latin-1・CP437 等の拡張で利用
- UTF-8 互換: 0-127 範囲は ASCII と UTF-8 で同一バイト表現
スペック比較表
| 規格 | 年 | ビット | 文字数 | 用途 |
|---|---|---|---|---|
| ASCII | 1963 | 7bit | 128 | 米国標準 |
| EBCDIC | 1963 | 8bit | 256 | IBM メインフレーム |
| ISO 646 | 1972 | 7bit | 128 | ASCII 国際版 |
| ISO 8859-1 | 1987 | 8bit | 256 | 西欧拡張 (Latin-1) |
| UTF-8 | 1992 | 可変 | 全 Unicode | 現代標準 |
具体例・対応技術
- テレタイプ ASR-33 (1963): ASCII 初の商用端末、最低限の対応
- DEC VT100 (1978): ASCII + エスケープシーケンス、画面制御の標準
- PC-9801 半角英数: PC-9801 内部で ASCII 互換コードを利用
- JIS X 0201 (1969): 日本版 ASCII、円記号 () と上方ライン (¯) で差異
- C 言語文字リテラル:
'A'= 65 (41h) の関係、ASCII 前提
自作PCでの選び方・注意点
ASCII は現代の自作 PC 環境でも内部的に生きており、UTF-8 ファイルの最初の 128 バイトは ASCII と完全互換のため、コーディング (Python/JavaScript/C 等) で英数記号のみのソースコードは ASCII としても UTF-8 としても解釈可能。シリアル通信・古いネットワークプロトコル (Telnet・SMTP・HTTP のヘッダ) は ASCII を前提とし、現代でも変わりません。echo -n "hello" | xxd で 16 進ダンプすると 68 65 6C 6C 6F が見え、これは ASCII の 'h''e''l''l''o' と完全一致。日本語ファイル名・テキストは Shift_JIS/UTF-8 等の上位エンコーディングが必要ですが、Web・API 開発で英語識別子のみを使う限り ASCII の概念は実用的に意識されます。
関連用語との違い
- EBCDIC (1963): IBM 独自、ASCII と非互換、メインフレーム専用
- ISO 646: ASCII 国際版、各国対応で記号差し替え可能
- UTF-8: 現代標準、ASCII 上位互換
よくある質問(FAQ)
Q1: ASCII の "DEL" は何のため? A: テレタイプ時代に紙テープの穴を全部開けて文字を消去するための「削除」記号。物理的な背景がある制御文字。
Q2: ASCII で日本語表示はできない? A: 不可。ASCII 7bit 範囲には英数字のみで日本語文字は含まれない。Shift_JIS・EUC-JP・UTF-8 など拡張エンコーディングが必要。
Q3: 8bit ASCII とは? A: 公式の ASCII は 7bit のみ、8bit に拡張したものは「拡張 ASCII」「CP437」「Latin-1」など別名称。混同しがちだが厳密には ASCII ではない。
まとめ
- ASCII = 1963 年 ANSI 制定の 7bit 文字エンコーディング
- 128 文字 (制御 32 + 英数記号 95 + DEL)
- UTF-8 と最初の 128 字が互換、現代も実質的に生きる
- 全エンコーディングの基盤、英語コーディングで意識される