0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【第2回】文字コードについて - ASCII、ISO/IEC 646 と JIS X 0201 -

Posted at

1. ASCII

ASCII (American Standard Code for Information Interchange)」 は1960年代にアメリカの規格として開発された文字コードです。
7ビット で表現し、英数字・記号・制御文字を含む 128種類の文字を定義しています。

image.png

0x00(0000 0000) ~ 0x1F(0001 1111) 及び 0x7F(0111 1111) には制御文字、
0x20(0010 0000) にはSP(スペース)
が定義されています。
0x21(0010 0001) ~ 0x7E(0111 1110) に文字が定義されています。

なお、制御文字の意味は以下となります。

[C0 制御文字(0x00〜0x1F, 0x7F)]
Hex 名称 機能概要
0x00 NUL Null(空文字)
0x01 SOH Start of Heading(ヘッダ開始)
0x02 STX Start of Text(テキスト開始)
0x03 ETX End of Text(テキスト終了)
0x04 EOT End of Transmission(伝送終了)
0x05 ENQ Enquiry(照会)
0x06 ACK Acknowledge(応答)
0x07 BEL Bell(ベル)
0x08 BS Backspace(後退)
0x09 HT Horizontal Tab(水平タブ)
0x0A LF Line Feed(改行)
0x0B VT Vertical Tab(垂直タブ)
0x0C FF Form Feed(改頁)
0x0D CR Carriage Return(復帰)
0x0E SO Shift Out(G1集合へ切替)
0x0F SI Shift In(G0集合へ切替)
0x10 DLE Data Link Escape(データリンク用)
0x11 DC1 Device Control 1(端末制御)
0x12 DC2 Device Control 2
0x13 DC3 Device Control 3
0x14 DC4 Device Control 4
0x15 NAK Negative Acknowledge(否定応答)
0x16 SYN Synchronous Idle(同期アイドル)
0x17 ETB End of Transmission Block(伝送ブロック終了)
0x18 CAN Cancel(取消)
0x19 EM End of Medium(媒体終了)
0x1A SUB Substitute(代替)
0x1B ESC Escape(エスケープ)
0x1C FS File Separator(ファイル区切り)
0x1D GS Group Separator(グループ区切り)
0x1E RS Record Separator(レコード区切り)
0x1F US Unit Separator(単位区切り)
0x7F DEL Delete(削除)

2. ISO/IEC 646(ASCIIをベースとした各国語版の枠組み)

ISO/IEC 646」は「ASCII」を国際標準化したもので、基本は「ASCII」と同じ 7ビット ですが、各国が必要に応じて一部の記号を置き換え可能としています。

image.png

また、「ISO/IEC 646 IRV」と呼ばれる国際参照版(International Reference Version)は、「ASCII」と同一の文字集合をもつ標準版として定められています。

image.png

参考として、「ISO/IEC 646 ドイツ版」は以下となります。

image.png

3. JIS X 0201(日本版のISO/IEC 646)

JIS X 0201」日本工業規格で定められた 8ビット の文字コードです。
前半(0x00–0x7F)はASCII互換、後半(0xA1–0xDF)は 片仮名専用領域 を定義しています。
Shift_JISなど日本語文字コード体系の基礎となっています。

image.png

C0 制御文字(0x00〜0x1F, 0x7F)はASCIIと同じです。
C1 制御文字(0x80〜0x9F)は以下となります。

[C1 制御文字(0x80〜0x9F)]
Hex 名称 機能概要
0x80 PAD Padding Character(詰め物)
0x81 HOP High Octet Preset(未使用)
0x82 BPH Break Permitted Here(改行可能位置)
0x83 NBH No Break Here(改行禁止)
0x84 IND Index(インデックス移動)
0x85 NEL Next Line(改行+復帰)
0x86 SSA Start of Selected Area(選択領域開始)
0x87 ESA End of Selected Area(選択領域終了)
0x88 HTS Horizontal Tab Set(水平タブ設定)
0x89 HTJ Horizontal Tab Justify(整列付き水平タブ)
0x8A VTS Vertical Tab Set(垂直タブ設定)
0x8B PLD Partial Line Down(部分行下移動)
0x8C PLU Partial Line Up(部分行上移動)
0x8D RI Reverse Line Feed(逆改行)
0x8E SS2 Single Shift Two(G2集合の一時呼び出し)
0x8F SS3 Single Shift Three(G3集合の一時呼び出し)
0x90 DCS Device Control String(装置制御文字列)
0x91 PU1 Private Use One(私用領域)
0x92 PU2 Private Use Two
0x93 STS Set Transmit State(送信状態設定)
0x94 CCH Cancel Character(文字取消)
0x95 MW Message Waiting(メッセージ待機)
0x96 SPA Start of Protected Area(保護領域開始)
0x97 EPA End of Protected Area(保護領域終了)
0x98 SOS Start of String(特殊文字列開始)
0x99 SGCI Single Graphic Character Introducer(図形文字導入)
0x9A SCI Single Character Introducer(単一文字導入)
0x9B CSI Control Sequence Introducer(制御シーケンス開始)
0x9C ST String Terminator(文字列終了)
0x9D OSC Operating System Command(OS命令)
0x9E PM Privacy Message(プライバシー保護)
0x9F APC Application Program Command(アプリ制御)

参考文献

プログラマのための文字コード技術入門(ISBN978-4-7741-4164-0)

関連

【第1回】文字コードについて - 文字コードとは(「符号化文字集合:CCS」と「文字符号化方式:CES」) -

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?