「ASCII」の版間の差分
m Botによる: {{Normdaten}}を追加 |
Namazu-tron (会話 | 投稿記録) 冒頭 ASCIIコード Quick Chart 画像付加 |
||
(22人の利用者による、間の33版が非表示) | |||
1行目: | 1行目: | ||
{{Otheruses|文字コード|その他|アスキー}} |
{{Otheruses|文字コード|その他|アスキー}} |
||
{{特殊文字}} |
{{特殊文字}} |
||
{{Infobox character encoding| name = ASCII| image = USASCII code chart.png| caption = ASCII コード表 [[英語版ウィキペディア|英]]:[[:en:MIL-STD-188|MIL-STD-188-100]] (1972)}} |
|||
{{lang|en|'''ASCII'''}}(アスキー、{{lang-en-short|American Standard Code for Information Interchange}})は、現代[[英語]]や[[西ヨーロッパ言語]]で使われる[[ラテン文字]]を中心とした[[文字コード]]。これは[[コンピュータ]]その他の通信機器において最もよく使われているものである。 |
|||
{{lang|en|'''ASCII'''}}(アスキー、{{lang-en-short|'''A'''merican '''S'''tandard '''C'''ode for '''I'''nformation '''I'''nterchange}})は、1963年に制定された、[[アメリカ合衆国]]における情報通信用の[[文字コード]]である。日本語訳は「情報交換用米国標準コード<ref>{{Cite web|和書|url=https://www.ibm.com/docs/ja/i/7.3?topic=streams-american-national-standard-code-information-interchange |title=情報交換用米国標準コード |access-date=2022年6月29日 |date=2014-02-20 |website=www.ibm.com |language=ja-jp}}</ref>」となるが、一般には日本国内でもASCIIと表記する。なお[[Internet Assigned Numbers Authority]] (IANA) はこれをASCIIではなく'''US-ASCII'''と表記するのが望ましいとしている<ref>{{Cite web|title=Character Sets|publisher=Internet Assigned Numbers Authority (IANA)|date=2022-07-14|accessdate=2023-02-19|url=https://www.iana.org/assignments/character-sets/character-sets.xhtml}}</ref>。 |
|||
== 概要 == |
== 概要 == |
||
1963年6月17日に、米国規格協会(American Standards Association: ASA、後の[[米国国家規格協会|ANSI]])によって制定された。当時の規格番号は「ASA X3.4」であったが、[[情報技術規格国際委員会]] (INCITS) の発足に伴い規格番号が2002年に改訂され、現在の規格番号は「ANSI INCITS 4」である。 |
|||
0番から127番までの番号(数値)がどの文字や記号を意味するかという対応関係を定めている<ref name="ewords_ascii">[https://e-words.jp/w/ASCII.html ASCII(アスキー / US-ASCII)とは - 意味をわかりやすく - IT用語辞典 e-Words]</ref>。 |
|||
⚫ | |||
ASCIIは、あくまで1960年代のアメリカにおいて英語での通信や当時のアメリカのコンピュータに必要な文字や記号などが含まれるように定めた文字コードである。そのため、含まれているのは次のような文字や記号や制御文字だけであり、それ以外は含まれていない。 |
|||
他の文字コードと同じく、{{lang|en|ASCII}}は[[整数]]で表されるデジタルデータと[[文字集合]]とが対応づけられた[[符号|コード]]である。このコードに従い、文字等を整数に変換することで、通信、文字情報の処理や保存を行うのが容易になる。{{lang|en|ASCII}}や{{lang|en|ASCII}}互換コードは、ほとんど全ての[[コンピュータ]](特に[[パーソナルコンピュータ]]や[[ワークステーション]])で扱うことができる。{{lang|en|[[Multipurpose Internet Mail Extensions|MIME]]}}では、「<code>US-ASCII</code>」とするのが望ましい。 |
|||
* 《[[英語]]で使われる[[アルファベット]]》の大文字と小文字 |
|||
* 英文でよく使われる[[約物]]など |
|||
* 0から9までの[[数字]](アラビア数字) |
|||
* [[制御文字]](ASCIIに含まれた制御文字については[[#ASCII制御文字]]の節で説明する) |
|||
これらの文字や記号をすべて通し番号で表現できるように、7[[ビット]]を使っている。つまり[[2進数]]で7桁、具体的には0000000から1111111まで、10進数でいえば0番から127番までの番号を使い、それぞれの数値(番号)に対応する文字や約物や数字や制御文字を決め、その対応の規則(コード)を制定したものである。 |
|||
{{lang|en|ASCII}}は7ビットコードである。つまり、情報を表すのに7桁の2進数(10進数では0〜127)を用いる。{{lang|en|ASCII}}が規格化された頃ですら、ほとんどのコンピュータの扱う最少単位の[[バイト (情報)|バイト]]は8ビットである[[8ビット|オクテット]]であった。そのため8ビット目は通信におけるエラーチェック用の[[パリティ]]ビットとして用いられていた。21世紀初頭においても、互換性を維持する目的で、7ビットコードが正式で、8ビット目は使用できない規格がいくつか存在する。 |
|||
⚫ | |||
{{lang|en|ASCII}}は[[テキスト]]の文書構造や見た目に関する情報を(基本的に文字コードとしては)持たない(垂直タブや改頁はそういったものの一種と考えられなくもないが、「制御コード」となっている)。そのような情報は[[マークアップ言語]]などを使用することで補うことができる。 |
|||
<!-- 日本で使われている同じ[[ISO/IEC 646]]ファミリーの[[JIS X 0201]]は、92番の文字に「[[バックスラッシュ]]」('{{backslash}}')の替わりに「円記号」('¥')が、126番に「チルダ」('~')の替わりに「オーバーライン」('‾')が割り当てられている。 --> |
|||
⚫ | |||
{|class=wikitable |
{|class=wikitable |
||
!コード範囲(16進)!!内容 |
!コード範囲(16進)!!内容 |
||
|- |
|- |
||
| |
|00–1F||制御文字 |
||
|- |
|- |
||
|20||空白 |
|20||空白 |
||
|- |
|- |
||
| |
|21–7E||[[図形文字]] |
||
|- |
|- |
||
|7F|| 制御文字 |
|7F|| 制御文字({{lang|en|DEL}}) |
||
|} |
|} |
||
=== 派生規格 === |
|||
⚫ | |||
ASCII制定当時、最小のデータ処理単位([[メモリアドレス|メモリアドレッシング]]の最小単位)つまり[[バイト (情報)|バイト]]が6ビットであるコンピュータも多かった([[ディジタル・イクイップメント・コーポレーション|DEC]]の[[PDPシリーズ]]など)。そのようなコンピュータでは6ビットの文字符号化方式を採用しており、そのため[[ISO/IEC 646]]の策定にあたっては、7ビット符号化案の他に6ビット符号化案もあった。のちに1バイトを[[8ビット]]とみなす、つまり[[オクテット (コンピュータ)|オクテット]]を採用するコンピュータが人気となり、主流となっていった<ref>[https://xtech.nikkei.com/it/atcl/column/14/228621/082700003/ 「オクテット」と「バイト」は何が違う? | 日経クロステック(xTECH)]</ref>。オクテットを採用したコンピュータでASCIIを扱う場合、1ビットの余りがあるので、その8ビット目は通信におけるエラーチェック用の[[パリティビット|パリティ]]ビットとして用いられていた<ref name="ewords_ascii"/>。21世紀初頭においても、互換性を維持する目的で、7ビットコードが正式で、8ビット目は使用できない規格がいくつか存在する。 |
|||
ASCIIから派生した独自拡張の文字符号化方式は1バイトコードおよび複数バイトコードを含め多数存在するが、各方式の間に互換性はほとんどなく、国際的なデータ交換性に問題があった。また、異なる言語間に限らず、例えば日本語の文字セットであっても複数の符号化方式が存在し、異なるコンピュータ間で互換性および可搬性のない[[機種依存文字]]が発生することになった。そのため、世界の文字を単一のコード体系のもとに収録する国際的な文字コード標準として、[[ISO/IEC 10646]]および[[Unicode]]の策定が進められることになった<ref>[https://e-words.jp/w/Unicode.html Unicode(ユニコード)とは - 意味をわかりやすく - IT用語辞典 e-Words]</ref>。Unicode方式で符号化された文字データのうち、0番から127番まではASCIIをベースにしており、互換性がある。特に8ビット単位で符号化する[[UTF-8]]は、128番以降の文字を使用しないデータの場合はASCIIと同一のバイト列となる<ref>[https://e-words.jp/w/UTF-8.html UTF-8とは - 意味をわかりやすく - IT用語辞典 e-Words]</ref>。従来の文字符号化方式では1バイトや2バイトで表現可能だった文字が、UTF-8では2バイトや3バイト以上必要となってしまうケースもあるが、そのデメリットを補ってなお余りある交換性の高さから国際的にもUTF-8の普及が進んでいる<ref>[https://news.mynavi.jp/techplus/article/20171013-a216/ Webサイトの文字コーディング、90%がUTF-8利用 - Shift JISは0.9% | TECH+(テックプラス)]</ref>。これは従来の文字符号化方式が開発された当時と比べると、コンピュータのメモリやストレージの容量が飛躍的に増大しているためでもある。[[HTML5]]ではUTF-8の使用が推奨されており<ref>[https://www.w3.org/International/questions/qa-html-encoding-declarations.ja HTMLで文字エンコーディングを指定する]</ref>、後継の{{仮リンク|HTML Living Standard|en|HTML Living Standard}}でもデフォルトでUTF-8が使用されることを想定している<ref>[https://html.spec.whatwg.org/multipage/semantics.html#charset HTML Standard - §4.2.5.4 Specifying the document's character encoding]</ref>。 |
|||
== ASCII制御文字 == |
== ASCII制御文字 == |
||
{{see also|制御文字#ASCII}} |
|||
初めの32文字(10進数で |
初めの32文字(10進数で0–31)は{{lang|en|ASCII}}では[[制御文字]]として予約されている。基本的にはこれらの制御文字は表示するための文字ではなく、[[モニタ]]や[[プリンター|プリンタ]]などの機器を制御するために用いられる。例えば、{{lang|en|ASCII}} 10(10進)は {{lang|en|line feed}}(改行)を表しプリンタの紙送りなどに用いる、{{lang|en|ASCII}} 27 はエスケープを表す。 |
||
{{lang|en|ASCII}} 127(全てのビットがオン、つまり、2進数で1111111)は、{{lang|en|delete}}([[削除文字]]) |
{{lang|en|ASCII}} 127(全てのビットがオン、つまり、2進数で1111111)は、{{lang|en|delete}}([[削除文字]])として知られる制御文字である。この記号が現れた場合、その部分のデータが消去されていることを示す。この制御文字だけ先頭部分になく最後にある理由は、[[紙テープ|パンチテープ]]への記録は上書きが出来ないため、削除する際には全てに穴を空けることで対応できるというところからきている(1111111は全てに穴の開いた状態を示す)。また、{{lang|en|ASCII}} 0(全てのビットがオフ、つまり2進数で0000000)は {{lang|en|Null}} あるいは[[ヌル文字]]と呼ばれ、{{lang|en|delete}} と同様に多くのコンピュータシステムでは無視される。これは、仮にパンチテープと反対に1を0に変えることでデータを記録し、かつ上書きが不可能な媒体が存在する場合でも対応できるようにしているのである。 |
||
コードの多くは、データ転送プロトコルで用いられる。(例:ヘッディング開始、テキスト開始、テキスト終了など) |
コードの多くは、データ転送プロトコルで用いられる。(例:ヘッディング開始、テキスト開始、テキスト終了など) |
||
147行目: | 157行目: | ||
== ASCII印字可能文字 == |
== ASCII印字可能文字 == |
||
ASCII 32は、空白文字である。キーボードのスペースキーから入力でき、語と語の間に空白を表示する。 |
ASCII 32は、空白文字である。キーボードのスペースキーから入力でき、語と語の間に空白を表示する。 |
||
ASCII |
ASCII 33–126は印刷可能な文字 (printable characters) であり、半角英数の数字、句読点や記号を表す。若い順から[[エクスクラメーションマーク]]、[[ダブルクオーテーション]]、…と続き、ラテン文字大文字の前に数字と大半の半角[[約物]]、大文字と小文字の間、ラテン文字小文字の後にも数種類の半角約物が割り当てられている。 |
||
下の図では、16進数・10進数・8進数の順でASCIIコードの値を示す。 |
下の図では、16進数・10進数・8進数の順でASCIIコードの値を示す。 |
||
168行目: | 178行目: | ||
* {{keypress|Ctrl|8}} が <code>^?</code> |
* {{keypress|Ctrl|8}} が <code>^?</code> |
||
== |
== 欠点など == |
||
上述されているようにASCIIは米国の規格であり、ラテン文字を用いる言語であっても英語以外を表記するには不十分である。 |
|||
当初[[サーカムフレックス]]、[[チルダ]]、[[グレイヴ・アクセント]]および(本来の目的と兼用で)[[アポストロフィー]]、[[コーテーションマーク]]、[[コンマ]]は他の文字に追加する[[ダイアクリティカルマーク]]として[[タイプライター|電動タイプライター]]で重ね打ちすることを想定していたが<ref>[https://jkorpela.fi/latin1/ascii-hist.html#60 "Character histories: notes on some ASCII code positions"]</ref>、間に[[バックスペースキー|バックスペース]]を入力しなければならず、[[ビデオ表示端末]]では重ね打ちが事実上不可能であるなどの理由で普及しなかった。 |
|||
早期に互換性のない変種が各国で出現したため、[[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]]が主流となっている。 |
|||
== 脚注 == |
|||
{{脚注ヘルプ}} |
|||
<!--=== 注釈 === |
|||
{{Notelist}}--> |
|||
=== 出典 === |
|||
{{Reflist}} |
|||
== 参考文献 == |
|||
*「{{lang|en|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)}}」{{lang|en|American National Standards Institute}}(1963年6月17日制定、1986年3月26日最終改正、2002年1月15日規格番号変更) |
*「{{lang|en|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)}}」{{lang|en|American National Standards Institute}}(1963年6月17日制定、1986年3月26日最終改正、2002年1月15日規格番号変更) |
||
== 関連項目 == |
== 関連項目 == |
||
*[[JIS X 0201]] |
* [[JIS X 0201]] |
||
* [[アスキーアート]] |
|||
{{文字コード}} |
{{文字コード}} |
2024年2月25日 (日) 10:05時点における最新版
![]() 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ビットであるコンピュータも多かった(DECのPDPシリーズなど)。そのようなコンピュータでは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に変えることでデータを記録し、かつ上書きが不可能な媒体が存在する場合でも対応できるようにしているのである。
コードの多くは、データ転送プロトコルで用いられる。(例:ヘッディング開始、テキスト開始、テキスト終了など)
セパレータは磁気テープへの保存のために設計された。
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 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) |
_ | 30 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) |
_ | 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) |
_ | 5P 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) |
_ | 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) |
_ | 7p 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が主流となっている。
脚注
[編集]出典
[編集]- ^ “情報交換用米国標準コード”. www.ibm.com (2014年2月20日). 2022年6月29日閲覧。
- ^ “Character Sets”. Internet Assigned Numbers Authority (IANA) (2022年7月14日). 2023年2月19日閲覧。
- ^ a b ASCII(アスキー / US-ASCII)とは - 意味をわかりやすく - IT用語辞典 e-Words
- ^ 「オクテット」と「バイト」は何が違う? | 日経クロステック(xTECH)
- ^ Unicode(ユニコード)とは - 意味をわかりやすく - IT用語辞典 e-Words
- ^ UTF-8とは - 意味をわかりやすく - IT用語辞典 e-Words
- ^ Webサイトの文字コーディング、90%がUTF-8利用 - Shift JISは0.9% | TECH+(テックプラス)
- ^ HTMLで文字エンコーディングを指定する
- ^ HTML Standard - §4.2.5.4 Specifying the document's character encoding
- ^ "Character histories: notes on some ASCII code positions"
参考文献
[編集]- 「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日規格番号変更)