(Translated by https://www.hiragana.jp/)
ASCII - Wikipedia コンテンツにスキップ

ASCII

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
ASCII
ASCII コードひょう えい:MIL-STD-188-100 (1972)
テンプレートを表示ひょうじ

ASCII(アスキー、えい: American Standard Code for Information Interchange)は、1963ねん制定せいていされた、アメリカ合衆国あめりかがっしゅうこくにおける情報じょうほう通信つうしんよう文字もじコードである。日本語にほんごやくは「情報じょうほう交換こうかんよう米国べいこく標準ひょうじゅんコード[1]」となるが、一般いっぱんには日本にっぽん国内こくないでもASCIIと表記ひょうきする。なおInternet Assigned Numbers Authority (IANA) はこれをASCIIではなくUS-ASCII表記ひょうきするのがのぞましいとしている[2]

概要がいよう

[編集へんしゅう]

1963ねん6がつ17にちに、米国べいこく規格きかく協会きょうかい(American Standards Association: ASA、ANSI)によって制定せいていされた。当時とうじ規格きかく番号ばんごうは「ASA X3.4」であったが、情報じょうほう技術ぎじゅつ規格きかく国際こくさい委員いいんかい (INCITS) の発足ほっそくともな規格きかく番号ばんごうが2002ねん改訂かいていされ、現在げんざい規格きかく番号ばんごうは「ANSI INCITS 4」である。

0ばんから127ばんまでの番号ばんごう数値すうち)がどの文字もじ記号きごう意味いみするかという対応たいおう関係かんけいさだめている[3]

ASCIIは、あくまで1960年代ねんだいのアメリカにおいて英語えいごでの通信つうしん当時とうじのアメリカのコンピュータに必要ひつよう文字もじ記号きごうなどがふくまれるようにさだめた文字もじコードである。そのため、ふくまれているのはつぎのような文字もじ記号きごう制御せいぎょ文字もじだけであり、それ以外いがいふくまれていない。

これらの文字もじ記号きごうをすべてとお番号ばんごう表現ひょうげんできるように、7ビット使つかっている。つまり2進数しんすうで7けた具体ぐたいてきには0000000から1111111まで、10進数しんすうでいえば0ばんから127ばんまでの番号ばんごう使つかい、それぞれの数値すうち番号ばんごう)に対応たいおうする文字もじやくもの数字すうじ制御せいぎょ文字もじめ、その対応たいおう規則きそく(コード)を制定せいていしたものである。

ASCIIの構成こうせいつぎのようになっている:

コード範囲はんい(16しん 内容ないよう
00–1F 制御せいぎょ文字もじ
20 空白くうはく
21–7E 図形ずけい文字もじ
7F 制御せいぎょ文字もじDEL

派生はせい規格きかく

[編集へんしゅう]

ASCIIはISO標準ひょうじゅん7ビット文字もじコードISO/IEC 646もととなった。しかし7ビットでは英語えいご以外いがい言語げんご対応たいおうするには不十分ふじゅうぶんであり、のちのヨーロッパ言語げんご使つかわれるラテン文字もじへの対応たいおう追加ついかした8ビット文字もじコードであるISO/IEC 8859策定さくていされた。その世界中せかいじゅう使用しようされている様々さまざま文字もじ表現ひょうげんできるようにするため、ASCIIで使用しようされていない128ばん以降いこう部分ぶぶんに、その文字もじてたり、複数ふくすうバイトを使用しようして1つの文字もじ表現ひょうげんしたりするように独自どくじ拡張かくちょうした文字もじ符号ふごう方式ほうしき使つかわれるようになっていった。

ASCII制定せいてい当時とうじ最小さいしょうのデータ処理しょり単位たんいメモリアドレッシング最小さいしょう単位たんい)つまりバイトが6ビットであるコンピュータもおおかった(DECPDPシリーズなど)。そのようなコンピュータでは6ビットの文字もじ符号ふごう方式ほうしき採用さいようしており、そのためISO/IEC 646策定さくていにあたっては、7ビット符号ふごうあんほかに6ビット符号ふごうあんもあった。のちに1バイトを8ビットとみなす、つまりオクテット採用さいようするコンピュータが人気にんきとなり、主流しゅりゅうとなっていった[4]。オクテットを採用さいようしたコンピュータでASCIIをあつか場合ばあい、1ビットのあまりがあるので、その8ビット通信つうしんにおけるエラーチェックようパリティビットとしてもちいられていた[3]。21世紀せいき初頭しょとうにおいても、互換ごかんせい維持いじする目的もくてきで、7ビットコードが正式せいしきで、8ビット使用しようできない規格きかくがいくつか存在そんざいする。

ASCIIから派生はせいした独自どくじ拡張かくちょう文字もじ符号ふごう方式ほうしきは1バイトコードおよび複数ふくすうバイトコードをふく多数たすう存在そんざいするが、かく方式ほうしきあいだ互換ごかんせいはほとんどなく、国際こくさいてきなデータ交換こうかんせい問題もんだいがあった。また、ことなる言語げんごあいだかぎらず、たとえば日本語にほんご文字もじセットであっても複数ふくすう符号ふごう方式ほうしき存在そんざいし、ことなるコンピュータあいだ互換ごかんせいおよび搬性のない機種きしゅ依存いぞん文字もじ発生はっせいすることになった。そのため、世界せかい文字もじ単一たんいつのコード体系たいけいのもとに収録しゅうろくする国際こくさいてき文字もじコード標準ひょうじゅんとして、ISO/IEC 10646およびUnicode策定さくていすすめられることになった[5]。Unicode方式ほうしき符号ふごうされた文字もじデータのうち、0ばんから127ばんまではASCIIをベースにしており、互換ごかんせいがある。とくに8ビット単位たんい符号ふごうするUTF-8は、128ばん以降いこう文字もじ使用しようしないデータの場合ばあいはASCIIと同一どういつのバイトれつとなる[6]従来じゅうらい文字もじ符号ふごう方式ほうしきでは1バイトや2バイトで表現ひょうげん可能かのうだった文字もじが、UTF-8では2バイトや3バイト以上いじょう必要ひつようとなってしまうケースもあるが、そのデメリットをおぎなってなおあまりある交換こうかんせいたかさから国際こくさいてきにもUTF-8の普及ふきゅうすすんでいる[7]。これは従来じゅうらい文字もじ符号ふごう方式ほうしき開発かいはつされた当時とうじくらべると、コンピュータのメモリやストレージの容量ようりょう飛躍ひやくてき増大ぞうだいしているためでもある。HTML5ではUTF-8の使用しよう推奨すいしょうされており[8]後継こうけいHTML Living Standard英語えいごばんでもデフォルトでUTF-8が使用しようされることを想定そうていしている[9]

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にえることでデータを記録きろくし、かつ上書うわがきが不可能ふかのう媒体ばいたい存在そんざいする場合ばあいでも対応たいおうできるようにしているのである。

コードのおおくは、データ転送てんそうプロトコルでもちいられる。(れい:ヘッディング開始かいし、テキスト開始かいし、テキスト終了しゅうりょうなど)

セパレータは磁気じきテープへの保存ほぞんのために設計せっけいされた。

XONXOFF は、プリンタのような処理しょりおそいデバイスにおいて、データをうしなうことがないように情報じょうほうながれを制御せいぎょするためにもちいることがある。

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 装置そうち制御せいぎょ1XON
001 0010 022 18 12 DC2 ^R 装置そうち制御せいぎょ2
001 0011 023 19 13 DC3 ^S 装置そうち制御せいぎょ3XOFF
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コードのしめす。

凡例はんれい:

みどり アルファベット
 制御せいぎょ文字もじ
あか 数字すうじ
あお 記号きごう
むらさき 拡張かくちょう記号きごう
だいだい 図形ずけい文字もじ
もも 国際こくさい
はい 定義ていぎ
ASCII (American Standard Code for Information Interchange) 印字いんじ可能かのう文字もじ
16しんの1のくらい_0 16しんの1のくらい_1 16しんの1のくらい_2 16しんの1のくらい_3 16しんの1のくらい_4 16しんの1のくらい_5 16しんの1のくらい_6 16しんの1のくらい_7 16しんの1のくらい_8 16しんの1のくらい_9 16しんの1のくらい_A 16しんの1のくらい_B 16しんの1のくらい_C 16しんの1のくらい_D 16しんの1のくらい_E 16しんの1のくらい_F
(16しんの10のくらいが)2_ 記号きごう)スペースSP
20(16)
32(10)
40(8)
記号きごう感嘆かんたん!
21(16)
33(10)
41(8)
数字すうじ"
22(16)
34(10)
42(8)
記号きごう番号ばんごう記号きごう#
23(16)
35(10)
43(8)
記号きごう)ドル記号きごう$
24(16)
36(10)
44(8)
記号きごう)パーセント記号きごう%
25(16)
37(10)
45(8)
(アルファベット)&
26(16)
38(10)
46(8)
記号きごう'
27(16)
39(10)
47(8)
記号きごうひらまる括弧かっこ(
28(16)
40(10)
50(8)
記号きごうまる括弧かっこ)
29(16)
41(10)
51(8)
記号きごう)アスタリスク*
2a(16)
42(10)
52(8)
記号きごう)プラス記号きごう+
2b(16)
43(10)
53(8)
記号きごう)コンマ,
2c(16)
44(10)
54(8)
記号きごう)ハイフンマイナス-
2d(16)
45(10)
55(8)
記号きごう終止符しゅうしふ.
2e(16)
46(10)
56(8)
記号きごう)スラッシュ/
2f(16)
47(10)
57(8)
(16しんの10のくらいが)3_ 数字すうじ0
30(16)
48(10)
60(8)
数字すうじ1
31(16)
49(10)
61(8)
数字すうじ2
32(16)
50(10)
62(8)
数字すうじ3
33(16)
51(10)
63(8)
数字すうじ4
34(16)
52(10)
64(8)
数字すうじ5
35(16)
53(10)
65(8)
数字すうじ6
36(16)
54(10)
66(8)
数字すうじ7
37(16)
55(10)
67(8)
数字すうじ8
38(16)
56(10)
70(8)
数字すうじ9
39(16)
57(10)
71(8)
数字すうじ:
3a(16)
58(10)
72(8)
数字すうじ;
3b(16)
59(10)
73(8)
数字すうじ<
3c(16)
60(10)
74(8)
数字すうじ=
3d(16)
61(10)
75(8)
数字すうじ>
3e(16)
62(10)
76(8)
数字すうじ?
3f(16)
63(10)
77(8)
(16しんの10のくらいが)4_ 記号きごう)アットマーク@
40(16)
64(10)
100(8)
(アルファベット)A
41(16)
65(10)
101(8)
(アルファベット)B
42(16)
66(10)
102(8)
(アルファベット)C
43(16)
67(10)
103(8)
(アルファベット)D
44(16)
68(10)
104(8)
(アルファベット)E
45(16)
69(10)
105(8)
(アルファベット)F
46(16)
70(10)
106(8)
(アルファベット)G
47(16)
71(10)
107(8)
(アルファベット)H
48(16)
72(10)
110(8)
(アルファベット)I
49(16)
73(10)
111(8)
(アルファベット)J
4a(16)
74(10)
112(8)
(アルファベット)K
4b(16)
75(10)
113(8)
(アルファベット)L
4c(16)
76(10)
114(8)
(アルファベット)M
4d(16)
77(10)
115(8)
(アルファベット)N
4e(16)
78(10)
116(8)
(アルファベット)O
4f(16)
79(10)
117(8)
(16しんの10のくらいが)5_ (アルファベット)P
50(16)
80(10)
120(8)
(アルファベット)Q
51(16)
81(10)
121(8)
(アルファベット)R
52(16)
82(10)
122(8)
(アルファベット)S
53(16)
83(10)
123(8)
(アルファベット)T
54(16)
84(10)
124(8)
(アルファベット)U
55(16)
85(10)
125(8)
(アルファベット)V
56(16)
86(10)
126(8)
(アルファベット)W
57(16)
87(10)
127(8)
(アルファベット)X
58(16)
88(10)
130(8)
(アルファベット)Y
59(16)
89(10)
131(8)
(アルファベット)Z
5a(16)
90(10)
132(8)
記号きごうひらかく括弧かっこ[
5b(16)
91(10)
133(8)
記号きごう)バックスラッシュ\
5c(16)
92(10)
134(8)
記号きごうかく括弧かっこ]
5d(16)
93(10)
135(8)
記号きごう)サーカムフレックス^
5e(16)
94(10)
136(8)
記号きごう)アンダースコア_
5f(16)
95(10)
137(8)
(16しんの10のくらいが)6_ 記号きごう)グレイヴ・アクセント`
60(16)
96(10)
140(8)
(アルファベット)a
61(16)
97(10)
141(8)
(アルファベット)b
62(16)
98(10)
142(8)
(アルファベット)c
63(16)
99(10)
143(8)
(アルファベット)d
64(16)
100(10)
144(8)
(アルファベット)e
65(16)
101(10)
145(8)
(アルファベット)f
66(16)
102(10)
146(8)
(アルファベット)g
67(16)
103(10)
147(8)
(アルファベット)h
68(16)
104(10)
150(8)
(アルファベット)i
69(16)
105(10)
151(8)
(アルファベット)j
6a(16)
106(10)
152(8)
(アルファベット)k
6b(16)
107(10)
153(8)
(アルファベット)l
6c(16)
108(10)
154(8)
(アルファベット)m
6d(16)
109(10)
155(8)
(アルファベット)n
6e(16)
110(10)
156(8)
(アルファベット)o
6f(16)
111(10)
157(8)
(16しんの10のくらいが)7_ (アルファベット)p
70(16)
112(10)
160(8)
(アルファベット)q
71(16)
113(10)
161(8)
(アルファベット)r
72(16)
114(10)
162(8)
(アルファベット)s
73(16)
115(10)
163(8)
(アルファベット)t
74(16)
116(10)
164(8)
(アルファベット)u
75(16)
117(10)
165(8)
(アルファベット)v
76(16)
118(10)
166(8)
(アルファベット)w
77(16)
119(10)
167(8)
(アルファベット)x
78(16)
120(10)
170(8)
(アルファベット)y
79(16)
121(10)
171(8)
(アルファベット)z
7a(16)
122(10)
172(8)
記号きごうひらなみ括弧かっこ{
7b(16)
123(10)
173(8)
記号きごう)バーティカルバー|
7c(16)
124(10)
174(8)
記号きごう括弧かっこ}
7d(16)
125(10)
175(8)
記号きごう)チルダ~
7e(16)
126(10)
176(8)
_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^?

欠点けってんなど

[編集へんしゅう]

上述じょうじゅつされているようにASCIIは米国べいこく規格きかくであり、ラテン文字もじもちいる言語げんごであっても英語えいご以外いがい表記ひょうきするには不十分ふじゅうぶんである。

当初とうしょサーカムフレックスチルダグレイヴ・アクセントおよび(本来ほんらい目的もくてき兼用けんようで)アポストロフィーコーテーションマークコンマ文字もじ追加ついかするダイアクリティカルマークとして電動でんどうタイプライターかさちすることを想定そうていしていたが[10]あいだバックスペース入力にゅうりょくしなければならず、ビデオ表示ひょうじ端末たんまつではかさちが事実じじつじょう不可能ふかのうであるなどの理由りゆう普及ふきゅうしなかった。

早期そうき互換ごかんせいのない変種へんしゅ各国かっこく出現しゅつげんしたため、ISO/IEC 646では可能かのう文字もじ定義ていぎすることで対応たいおうはかったが、えられた文字もじ利用りようするプログラム言語げんごことなる文字もじ集合しゅうごうあいだでは文字もじ発生はっせいすることとなった。(日本語にほんごではJIS X 0201起因きいんするバックスラッシュえん記号きごうへの文字もじけがある。)

1970年代ねんだい以降いこう、8ビットがコンピュータで主流しゅりゅうバイトサイズになると、追加ついかの1ビットの領域りょういき利用りようしたいわゆる拡張かくちょうASCII言語げんご機種きしゅごとに乱立らんりつした。ISO/IEC 8859ではこれらの追加ついか領域りょういき標準ひょうじゅんし、スペインポルトガルフランス語ふらんすごドイツとうもちいられるラテン文字もじのほとんどがISO/IEC 8859-1統合とうごうされた。

ISO/IEC 2022では日本語にほんごISO-2022-JP)をふく複数ふくすう文字もじ集合しゅうごう符号ふごうひょうえによって統一とういつしたが、ひょうえをもちいた方法ほうほう制御せいぎょ複雑ふくざつであるなどの欠点けってんもあり、2023ねん現在げんざいではすべての文字もじ統一とういつされた符号ふごうあつかえるUnicode主流しゅりゅうとなっている。

脚注きゃくちゅう

[編集へんしゅう]

出典しゅってん

[編集へんしゅう]

参考さんこう文献ぶんけん

[編集へんしゅう]
  • 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にち規格きかく番号ばんごう変更へんこう

関連かんれん項目こうもく

[編集へんしゅう]