ASCII

提供: miniwiki
2018/9/27/ (木) 22:42時点におけるAdmin (トーク | 投稿記録)による版 (1版 をインポートしました)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索


ASCII(アスキー、: American Standard Code for Information Interchange)は、現代英語西ヨーロッパ言語で使われるラテン文字を中心とした文字コード。これはコンピュータその他の通信機器において最もよく使われているものである。

概要

ASCIIは、7桁の2進数で表すことのできる整数の数値のそれぞれに、大小のラテン文字数字、英文でよく使われる約物などを割り当てた文字コードである。1963年6月17日に、American Standards Association(ASA、後のANSI)によって制定された。当時の規格番号は ASA X3.4 、現在の規格番号は ANSI INCITS 4 である。

ASCIIISO標準7ビット文字コードISO/IEC 646の元となり、後に8ビット文字コードであるISO/IEC 8859が主流となって以降、世界中で使用されている様々な文字の符号化方式の多くは、ASCIIで使用されていない128番以降の部分に、その他の文字を割り当てたものである。

他の文字コードと同じく、ASCII整数で表されるデジタルデータと文字集合とが対応づけられたコードである。このコードに従い、文字等を整数に変換する事で、通信、文字情報の処理や保存を行うのが容易になる。ASCIIASCII互換コードは、ほとんど全てのコンピュータ(特にパーソナルコンピュータワークステーション)で扱う事が出来る。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に変えることでデータを記録し、かつ上書きが不可能な媒体が存在する場合でも対応できるようにしているのである。

コードの多くは、データ転送プロトコルで用いられる。(例:ヘッディング開始、テキスト開始、テキスト終了など。)

セパレータは磁気テープへの保存のために設計された。

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コードの値を示す。

テンプレート:Chset-legend

テンプレート:Chset-table-header
テンプレート:Chset-left テンプレート:Chset-color-punct|テンプレート:Chset-ctrl4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4
テンプレート:Chset-left テンプレート:Chset-color-digit|テンプレート:Chset-cell4 テンプレート:Chset-color-digit|テンプレート:Chset-cell4 テンプレート:Chset-color-digit|テンプレート:Chset-cell4 テンプレート:Chset-color-digit|テンプレート:Chset-cell4 テンプレート:Chset-color-digit|テンプレート:Chset-cell4 テンプレート:Chset-color-digit|テンプレート:Chset-cell4 テンプレート:Chset-color-digit|テンプレート:Chset-cell4 テンプレート:Chset-color-digit|テンプレート:Chset-cell4 テンプレート:Chset-color-digit|テンプレート:Chset-cell4 テンプレート:Chset-color-digit|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4
テンプレート:Chset-left テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4
テンプレート:Chset-left テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4
テンプレート:Chset-left テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4
テンプレート:Chset-left テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-alpha|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-punct|テンプレート:Chset-cell4 テンプレート:Chset-color-undef|

テンプレート:Chset-table-footer

大文字のASCII値に32を加えると小文字に変換することが出来る。この変換は、2進法では、6ビット目に1をセットするだけでよい。また、数字から48を減じれば、対応する値が得られる。この変換は、5ビット目及び6ビット目に0をセットするか、あるいは単純に上位4ビットを無視するだけでもよい。なお、印字可能文字のうち「@」から始まる32文字については、ASCII値を64減じて対応する制御文字を求め、この制御文字を「コントロール+」(: control+)という前置表現を付けた印字可能文字で表記する慣習がある。

例:BELコード(07) →「コントロール+G」(受信した側の機器で注意喚起音が鳴る)

この制御文字の表記方法は、キーボード上の印字可能文字キーを制御文字の送出に用いていた機器の名残りであると考えられる(7ビット目を0にセットする専用キー(Ctrlキー)を、印字可能文字キーと同時に押して制御文字を送出)。

また,Unix 端末では Ctrl+数字 で人間工学的に押下しづらい制御文字を送出できる。具体的には

^2 が ^@,^3 が ^[,^4 が ^\,^5 が ^],^6 が ^^,^7 が ^_,^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日規格番号変更)

関連項目