アスキーコード
アスキーコード
アスキーコード
アスキーコード(Ascii Code)とは、American Standard Code for Information Interchangeのことで、
ANSI(当時はASA)によって定義された。現在の規格番号は ANSI INCITS 4 。
このコードは、コンピュータで文字を扱う場合の標準規格で、英数字、記号、制御コード(改行等)の各文字を7Bitで表現できるようにしている。
ASCIIコードの構成
ASCIIコードは7bitで表現される128文字になります。0x00~0x1Fおよび0x7Fは制御コードになり、 機器との通信制御に用います。制御コードの一部のTAB(0x09)や改行(0x0D/0x0A)等はファイルや画面制御に使用されることもあります。
0x21~0x7Eは一般的な文字として使用されます。このうち、0x23、0x24、0x40、0x5B~0x5E、 0x60~0x7Eは各国独自で文字を差し替えている場合があります。
このASCIIコードですが、現実的には7Bitの128文字だけではアメリカ以外では不足ことが多いため、 どちらかというと8bitに拡張し256文字まで定義された「ISO 8859」の形で使用されます。なお、「ISO 8859」の0xA0~0xFFは各国で独自に文字を割り当てているので、互換性が無い場合があります。
さらに日本のような漢字圏では、256文字では収まらないので、JIS漢字、Shift-JIS、EUC等が考えられ、最近ではUnicodeが一般的になっています。
上記制御コードですが、機器間の制御だけでなくASCII端末の場合キーボードから入力することも可能です。たとえば、 コントロールキーとCの文字を同時に押すことで0x03の信号が送信される仕組みになっています。どの組み合わせでどのコードが送信されるかは、「ASCII制御文字一覧」の「コントロールシーケンス」の欄を参照してください。
またプログラムから意図的に制御コードを出力することもあり、 多くのプログラム言語で \(バックスラッシュ)でエスケープした特殊文字として記載することが可能です。これらは、「エスケープシーケンス」の欄を参照してください。ただしプログラム言語によりエスケープシーケンスの対応状況は異なる可能性があります。
ちなみに「エスケープシーケンス」と記載していますが、 キャラクタ端末のページ制御を行う「ISO/IEC 2022」やカーソル制御や色制御を行う「ISO/IEC 6429」(一般的にはANSIエスケープシーケンス)があります。
いまさらながらのASCIIコード表です。最近はもう参照することは少ないと思います。昔はRS-232Cの通信モニタの時に良く見ましたねぇ。
通信設定で7Bit偶数パリティとか9600bpsとかやってましたね。 ちなみに通信設定が何になるのかは、会社間の力関係かプロジェクトリーダーの宗教的要因で決まるようです。
下位 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | ||
上 位 |
0x | ␀ | ␁ | ␂ | ␃ | ␄ | ␅ | ␆ | ␇ | ␈ | ␉ | ␊ | ␋ | ␌ | ␍ | ␎ | ␏ |
1x | ␐ | ␑ | ␒ | ␓ | ␔ | ␕ | ␖ | ␗ | ␘ | ␙ | ␚ | ␛ | ␜ | ␝ | ␞ | ␟ | |
2x | SP | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / | |
3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? | |
4x | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | |
5x | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ | |
6x | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | |
7x | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | ␡ |
ASCII制御文字
ASCIIコードの0x00(0)から0x1f(31)までは、制御コードが割り当てられています。 制御コードは表示・印刷されるものではなく、文字どおり装置を制御するためのコードです。
改ページやタブ等が有名ですね。また通信ではBSC手順としてSOHやACK/NAKを使って制御することがあります。
16進 | 表記 | 略語 | コントロール シーケンス |
エスケープ シーケンス |
使用目的 | 備考 |
---|---|---|---|---|---|---|
0 | ␀ | NUL(Null) | ^@ | \0 | Null文字 | |
1 | ␁ | SOH(Start Of Heading) | ^A | ヘッダ開始 | ||
2 | ␂ | STX(Start Of Text) | ^B | テキスト開始 | ||
3 | ␃ | ETX(End Of Text) | ^C | テキスト終了 | ||
4 | ␄ | EOT(End Of Transmission) | ^D | 伝送終了 | ||
5 | ␅ | ENQ(Enquery) | ^E | 問い合わせ | ||
6 | ␆ | ACK(Acknowledgement) | ^F | 肯定応答 | ||
7 | ␇ | BEL(Bell) | ^G | \a | ベルをならす | |
8 | ␈ | BS(Back Space) | ^H | \b | 一文字後退 | |
9 | ␉ | HT(Horizontal Tabulation) | ^I | \t | 水平タブ | |
A | ␊ | LF(Line Feed) | ^J | \n | 改行 | |
B | ␋ | VT(Vertical Tabulation) | ^K | \v | 垂直タブ | |
C | ␌ | FF(Form Feed ) | ^L | \f | 改ページ | |
D | ␍ | CR(Carriage Return) | ^M | \r | 復帰 | |
E | ␎ | SO(Shift Out) | ^N | シフトアウト | ||
F | ␏ | SI(Shift In) | ^O | シフトイン | ||
10 | ␐ | DLE(Data Link Escape) | ^P | 伝送制御拡張 | ||
11 | ␑ | DC1(Device Control 1) | ^Q | 装置制御1,XON | ||
12 | ␒ | DC2(Device Control 2) | ^R | 装置制御2 | ||
13 | ␓ | DC3(Device Control 3) | ^S | 装置制御3,XOFF | ||
14 | ␔ | DC4(Device Control 4) | ^T | 装置制御4 | ||
15 | ␕ | NAK(Negative Acknowledgement) | ^U | 否定応答 | ||
16 | ␖ | SYN(Synchronous idle) | ^V | 同期信号 | ||
17 | ␗ | ETB(End of Transmission Block) | ^W | 伝送ブロック終了 | ||
18 | ␘ | CAN(Cancel) | ^X | 取消 | ||
19 | ␙ | EM(End of Medium) | ^Y | 媒体終端 | ||
1A | ␚ | SUB(Substitute) | ^Z | 文字置換 | ||
1B | ␛ | ESC(Escape) | ^[ | \e | エスケープ | |
1C | ␜ | FS(File Separator) | ^\ | ファイル分離標識 | ||
1D | ␝ | GS(Group Separator) | ^] | グループ分離標識 | ||
1E | ␞ | RS(Record Separator) | ^^ | レコード分離標識 | ||
1F | ␟ | US(Unit Separator) | ^_ | ユニット分離標識 | ||
20 | SP(Space) | 空白文字 | ||||
7F | ␡ | DEL(Delete) | ^? | 一文字削除 |
ISO 646
ASCIIコードの一部の文字は、国によってローカライズされています。これは、「ISO 646」として規格化されています。
16進 | ASCII | ドイツ | デンマーク/ノルウェー | イギリス | ハンガリー | 日本 | マルタ | スウェーデン | ユーゴスラビア |
---|---|---|---|---|---|---|---|---|---|
23 | # | # | # | £ | # | # | # | # | # |
24 | $ | $ | $ | $ | ¤ | $ | $ | ¤ | $ |
40 | @ | § | @ | @ | Á | @ | @ | @ | Ž |
5B | [ | Ä | Æ | [ | É | [ | ġ | Ä | Š |
5C | \ | Ö | Ø | \ | Ö | ¥ | ż | Ö | Đ |
5D | ] | Ü | Å | ] | Ü | ] | ħ | Å | Ć |
5E | ^ | ^ | ^ | ^ | ^ | ^ | ^ | ^ | Č |
60 | ` | ` | ` | ` | á | ` | ċ | ` | ž |
7B | { | ä | æ | { | é | { | Ġ | ä | š |
7C | | | ö | ø | | | ö | | | Ż | ö | đ |
7D | } | ü | å | } | ü | } | Ħ | å | ć |
7E | ~ | ß | ~ | ~ | ˝ | ‾ | Ċ | ~ | č |