ASCII
この項目には、一部のコンピュータや閲覧ソフトで表示できない文字が含まれています 。 |
ASCII(アスキー、英: American Standard Code for Information Interchange)は、現代英語や西ヨーロッパ言語で使われるラテン文字を中心とした文字コード。これはコンピュータその他の通信機器において最もよく使われているものである。
概要[編集]
ASCIIは、7桁の2進数で表すことのできる整数の数値のそれぞれに、大小のラテン文字や数字、英文でよく使われる約物などを割り当てた文字コードである。1963年6月17日に、American Standards Association(ASA、後のANSI)によって制定された。当時の規格番号は ASA X3.4 、現在の規格番号は ANSI INCITS 4 である。
ASCIIはISO標準7ビット文字コードISO/IEC 646の元となり、後に8ビット文字コードであるISO/IEC 8859が主流となって以降、世界中で使用されている様々な文字の符号化方式の多くは、ASCIIで使用されていない128番以降の部分に、その他の文字を割り当てたものである。
他の文字コードと同じく、ASCIIは整数で表されるデジタルデータと文字集合とが対応づけられたコードである。このコードに従い、文字等を整数に変換することで、通信、文字情報の処理や保存を行うのが容易になる。ASCIIやASCII互換コードは、ほとんど全てのコンピュータ(特にパーソナルコンピュータやワークステーション)で扱うことができる。MIMEでは、「US-ASCII
」とするのが望ましい。
ASCIIは7ビットコードである。つまり、情報を表すのに7桁の2進数(10進数では0〜127)を用いる。ASCIIが規格化された頃ですら、ほとんどのコンピュータの扱う最少単位のバイトは8ビットであるオクテットであった。そのため8ビット目は通信におけるエラーチェック用のパリティビットとして用いられていた。21世紀初頭においても、互換性を維持する目的で、7ビットコードが正式で、8ビット目は使用できない規格がいくつか存在する。
ASCIIはテキストの文書構造や見た目に関する情報を(基本的に文字コードとしては)持たない(垂直タブや改頁はそういったものの一種と考えられなくもないが、「制御コード」となっている)。そのような情報はマークアップ言語などを使用することで補うことができる。
ASCIIの構成は次のようになっている。
コード範囲(16進) | 内容 |
---|---|
00-1F | 制御文字 |
20 | 空白 |
21-7E | 図形文字 |
7F | 制御文字(DEL) |
ASCII制御文字[編集]
初めの32文字(10進数で0-31)はASCIIでは制御文字として予約されている。基本的にはこれらの制御文字は表示するための文字ではなく、モニタやプリンタなどの機器を制御するために用いられる。例えば、ASCII 10(10進)は line feed(改行)を表しプリンタの紙送りなどに用いる、ASCII 27 はエスケープを表す。
ASCII 127(全てのビットがオン、つまり、2進数で1111111)は、delete(削除文字) として知られる制御文字である。この記号が現れた場合、その部分のデータが消去されていることを示す。この制御文字だけ先頭部分になく最後にある理由は、パンチテープへの記録は上書きが出来ないため、削除する際には全てに穴を空けることで対応できるというところからきている(1111111は全てに穴の開いた状態を示す)。また、ASCII 0(全てのビットがオフ、つまり2進数で0000000)は Null あるいはヌル文字と呼ばれ、delete と同様に多くのコンピュータシステムでは無視される。これは、仮にパンチテープと反対に1を0に変えることでデータを記録し、かつ上書きが不可能な媒体が存在する場合でも対応できるようにしているのである。
コードの多くは、データ転送プロトコルで用いられる。(例:ヘッディング開始、テキスト開始、テキスト終了など)
セパレータは磁気テープへの保存のために設計された。
XON や XOFF は、プリンタのような処理の遅いデバイスにおいて、データを失うことがないように情報の流れを制御するために用いることがある。
2進 | 8進 | 10進 | 16進 | 略語 | 図形表現 | CS | エスケープシーケンス | 名前/意味 |
---|---|---|---|---|---|---|---|---|
000 0000 | 000 | 0 | 00 | NUL | ␀ | ^@ | \0 | ヌル文字 |
000 0001 | 001 | 1 | 01 | SOH | ␁ | ^A | ヘッディング開始 | |
000 0010 | 002 | 2 | 02 | STX | ␂ | ^B | テキスト開始 | |
000 0011 | 003 | 3 | 03 | ETX | ␃ | ^C | テキスト終了 | |
000 0100 | 004 | 4 | 04 | EOT | ␄ | ^D | 伝送終了 | |
000 0101 | 005 | 5 | 05 | ENQ | ␅ | ^E | 問い合わせ | |
000 0110 | 006 | 6 | 06 | ACK | ␆ | ^F | 肯定応答 | |
000 0111 | 007 | 7 | 07 | BEL | ␇ | ^G | \a | ベル |
000 1000 | 010 | 8 | 08 | BS | ␈ | ^H | \b | 後退 |
000 1001 | 011 | 9 | 09 | HT | ␉ | ^I | \t | 水平タブ |
000 1010 | 012 | 10 | 0A | LF | ␊ | ^J | \n | 改行 |
000 1011 | 013 | 11 | 0B | VT | ␋ | ^K | \v | 垂直タブ |
000 1100 | 014 | 12 | 0C | FF | ␌ | ^L | \f | 書式送り |
000 1101 | 015 | 13 | 0D | CR | ␍ | ^M | \r | 復帰 |
000 1110 | 016 | 14 | 0E | SO | ␎ | ^N | シフトアウト | |
000 1111 | 017 | 15 | 0F | SI | ␏ | ^O | シフトイン | |
001 0000 | 020 | 16 | 10 | DLE | ␐ | ^P | 伝送制御拡張 | |
001 0001 | 021 | 17 | 11 | DC1 | ␑ | ^Q | 装置制御1、XON | |
001 0010 | 022 | 18 | 12 | DC2 | ␒ | ^R | 装置制御2 | |
001 0011 | 023 | 19 | 13 | DC3 | ␓ | ^S | 装置制御3、XOFF | |
001 0100 | 024 | 20 | 14 | DC4 | ␔ | ^T | 装置制御4 | |
001 0101 | 025 | 21 | 15 | NAK | ␕ | ^U | 否定応答 | |
001 0110 | 026 | 22 | 16 | SYN | ␖ | ^V | 同期信号 | |
001 0111 | 027 | 23 | 17 | ETB | ␗ | ^W | 伝送ブロック終結 | |
001 1000 | 030 | 24 | 18 | CAN | ␘ | ^X | 取消 | |
001 1001 | 031 | 25 | 19 | EM | ␙ | ^Y | 媒体終端 | |
001 1010 | 032 | 26 | 1A | SUB | ␚ | ^Z | 置換 | |
001 1011 | 033 | 27 | 1B | ESC | ␛ | ^[ | \e | エスケープ |
001 1100 | 034 | 28 | 1C | FS | ␜ | ^\ | ファイル分離標識 | |
001 1101 | 035 | 29 | 1D | GS | ␝ | ^] | グループ分離標識 | |
001 1110 | 036 | 30 | 1E | RS | ␞ | ^^ | レコード分離標識 | |
001 1111 | 037 | 31 | 1F | US | ␟ | ^_ | ユニット分離標識 | |
111 1111 | 177 | 127 | 7F | DEL | ␡ | ^? | 抹消 |
ASCII印字可能文字[編集]
ASCII 32は、空白文字である。キーボードのスペースキーから入力でき、語と語の間に空白を表示する。 ASCII 33〜126は印刷可能な文字 (printable characters) であり、半角英数の数字、句読点や記号を表す。若い順からエクスクラメーションマーク、ダブルクオーテーション、…と続き、ラテン文字大文字の前に数字と大半の半角約物、大文字と小文字の間、ラテン文字小文字の後にも数種類の半角約物が割り当てられている。
下の図では、16進数・10進数・8進数の順でASCIIコードの値を示す。
凡例:
|
|
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2− |
SP 0x20 32 040 |
! 0x21 33 041 |
" 0x22 34 042 |
# 0x23 35 043 |
$ 0x24 36 044 |
% 0x25 37 045 |
& 0x26 38 046 |
' 0x27 39 047 |
( 0x28 40 050 |
) 0x29 41 051 |
* 0x2A 42 052 |
+ 0x2B 43 053 |
, 0x2C 44 054 |
- 0x2D 45 055 |
. 0x2E 46 056 |
/ 0x2F 47 057 |
3− |
0 0x30 48 060 |
1 0x31 49 061 |
2 0x32 50 062 |
3 0x33 51 063 |
4 0x34 52 064 |
5 0x35 53 065 |
6 0x36 54 066 |
7 0x37 55 067 |
8 0x38 56 070 |
9 0x39 57 071 |
: 0x3A 58 072 |
; 0x3B 59 073 |
< 0x3C 60 074 |
= 0x3D 61 075 |
> 0x3E 62 076 |
? 0x3F 63 077 |
4− |
@ 0x40 64 100 |
A 0x41 65 101 |
B 0x42 66 102 |
C 0x43 67 103 |
D 0x44 68 104 |
E 0x45 69 105 |
F 0x46 70 106 |
G 0x47 71 107 |
H 0x48 72 110 |
I 0x49 73 111 |
J 0x4A 74 112 |
K 0x4B 75 113 |
L 0x4C 76 114 |
M 0x4D 77 115 |
N 0x4E 78 116 |
O 0x4F 79 117 |
5− |
P 0x50 80 120 |
Q 0x51 81 121 |
R 0x52 82 122 |
S 0x53 83 123 |
T 0x54 84 124 |
U 0x55 85 125 |
V 0x56 86 126 |
W 0x57 87 127 |
X 0x58 88 130 |
Y 0x59 89 131 |
Z 0x5A 90 132 |
[ 0x5B 91 133 |
\ 0x5C 92 134 |
] 0x5D 93 135 |
^ 0x5E 94 136 |
_ 0x5F 95 137 |
6− |
` 0x60 96 140 |
a 0x61 97 141 |
b 0x62 98 142 |
c 0x63 99 143 |
d 0x64 100 144 |
e 0x65 101 145 |
f 0x66 102 146 |
g 0x67 103 147 |
h 0x68 104 150 |
i 0x69 105 151 |
j 0x6A 106 152 |
k 0x6B 107 153 |
l 0x6C 108 154 |
m 0x6D 109 155 |
n 0x6E 110 156 |
o 0x6F 111 157 |
7− |
p 0x70 112 160 |
q 0x71 113 161 |
r 0x72 114 162 |
s 0x73 115 163 |
t 0x74 116 164 |
u 0x75 117 165 |
v 0x76 118 166 |
w 0x77 119 167 |
x 0x78 120 170 |
y 0x79 121 171 |
z 0x7A 122 172 |
{ 0x7B 123 173 |
| 0x7C 124 174 |
} 0x7D 125 175 |
~ 0x7E 126 176 |
|
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F |
大文字のASCII値に32を加えると小文字に変換することができる。この変換は、2進法では、6ビット目に1をセットするだけでよい。また、数字から48を減じれば、対応する値が得られる。この変換は、5ビット目及び6ビット目に0をセットするか、あるいは単純に上位4ビットを無視するだけでもよい。なお、印字可能文字のうち「@」から始まる32文字については、ASCII値を64減じて対応する制御文字を求め、この制御文字を「コントロール+」(英: control+)という前置表現を付けた印字可能文字で表記する慣習がある。
例:BELコード(07) →「コントロール+G」(受信した側の機器で注意喚起音が鳴る)
この制御文字の表記方法は、キーボード上の印字可能文字キーを制御文字の送出に用いていた機器の名残りであると考えられる(7ビット目を0にセットする専用キー(Ctrlキー)を、印字可能文字キーと同時に押して制御文字を送出)。
また、Unix 端末では Ctrl+数字 によって、人間工学的に押下しづらい制御文字を送出できる。キャレット記法を用いると、具体的には以下であることが多い。[要出典]
- Ctrl+2 が
^@
- Ctrl+3 が
^[
- Ctrl+4 が
^\
- Ctrl+5 が
^]
- Ctrl+6 が
^^
- Ctrl+7 が
^_
- Ctrl+8 が
^?
参考文献[編集]
- 「ANSI INCITS 4-1986 (formerly ANSI X3.4-1986) American National Standard for Information Systems ― Coded Character Sets ― 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII)」American National Standards Institute(1963年6月17日制定、1986年3月26日最終改正、2002年1月15日規格番号変更)