アスキーコード

アスキーコード

アスキーコード

アスキーコード

アスキーコード(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 ~ ß ~ ~ ˝ Ċ ~ č
Publisher:ヰチバフォン, Author:桜庭 一場