| |
△ |
| |
|
表 1 : エスケープシーケンス表
シーケンス | 意味 | 0x0F | SI | GL <- G0 | 0x0E | SO | GL <- G1 | 0x1B 0x6E | ESC n | GL <- G2 | 0x1B 0x6F | ESC o | GL <- G3 | 不可 | GR <- G0 | 0x1B 0x22 | ESC " | GR <- G1 | 0x1B 0x7D | ESC } | GR <- G2 | 0x1B 0x7C | ESC | | GR <- G3 | | 0x1B 0x4E | ESC N (SS2) | GL <- G2 (一文字のみ) | 0x1B 0x4F | ESC O (SS2) | GL <- G3 (一文字のみ) | 0x8E | SS2 | GR <- G2 (一文字のみ) | 0x8F | SS3 | GR <- G3 (一文字のみ) | | 0x1B 0x28 [F] | ESC ( [F] | G0 <- 1バイト94領域文字 | 0x1B 0x24 0x28 [F] | ESC $ (注 [F] | G0 <- 多バイト94領域文字 | 不可 | G0 <- 1バイト96領域文字 | 不可 | G0 <- 多バイト96領域文字 | 注 ここで [F] が 0x40-0x42 なら ( を省略 | 0x1B 0x29 [F] | ESC ) [F] | G1 <- 1バイト94領域文字 | 0x1B 0x24 0x29 [F] | ESC $ ) [F] | G1 <- 多バイト94領域文字 | 0x1B 0x2D [F] | ESC - [F] | G1 <- 1バイト96領域文字 | 0x1B 0x24 0x2D [F] | ESC $ - [F] | G1 <- 多バイト96領域文字 | | 0x1B 0x2A [F] | ESC * [F] | G2 <- 1バイト94領域文字 | 0x1B 0x24 0x2A [F] | ESC $ * [F] | G2 <- 多バイト94領域文字 | 0x1B 0x2E [F] | ESC . [F] | G2 <- 1バイト96領域文字 | 0x1B 0x24 0x2E [F] | ESC $ . [F] | G2 <- 多バイト96領域文字 | | 0x1B 0x2B [F] | ESC + [F] | G3 <- 1バイト94領域文字 | 0x1B 0x24 0x2B [F] | ESC $ + [F] | G3 <- 多バイト94領域文字 | 0x1B 0x2F [F] | ESC / [F] | G3 <- 1バイト96領域文字 | 0x1B 0x24 0x2F [F] | ESC $ / [F] | G3 <- 多バイト96領域文字 |
| |
|
表 2 : 文字コード別 [F] の定義
1バイト系94領域 | [F] | ISO-646 英国版 | A | ISO-646 ( US-ASCII ) | B | JISX0201カナ | I | JISX0201ラテン | J |
多バイト系94領域 | [F] | JISX0208-1978 | @ | GB 2312-80 (簡体字) | A | JISX0208-1983(1990,1997も) | B | KS C 5601-1987 (Hangle) | C | JISX0212-1990 (拡張漢字) | D | CNS 11643-1986-1 ~ 7 (繁体字) | G~M |
1バイト系96領域 | [F] | ISO-8859-1 | A | ISO-8859-2 | B | ISO-8859-3 | C | ISO-8859-4 | D | ISO-8859-5 | L | ISO-8859-6 | G | ISO-8859-7 | F | ISO-8859-8 | H | ISO-8859-9 | M | ISO-8859-10 | X |
| |
|
| |
△ |
| |
|
表 : US-ASCII コード表
| |
|
ISO-646 は 0x21-0x7E の部分だけをいいます。 表中の灰色部分は各国版 ISO-646 で別の文字への入れ替えが許されている領域です。 日本版である JISX0201ラテンでは 0x5C(バックスラッシュ) が 円記号、0x7E(チルダ) がオーバーラインに置き換わっています。 ( 下の表を参照 )
| |
|
| |
△ |
| |
|
表 : JISX0201 コード表
 |  | ラテン | カナ |
| |
|
| |
△ |
| |
|
表 : C0 集合
番号 | 略 | 意味 | 番号 | 略 | 意味 | 0x00 | NUL | NULL | 0x10 | DLE | DATA LINK ESCAPE | 0x01 | SOH | START OF HEADING | 0x11 | DC1 | DEVICE CONTROL ONE | 0x02 | STX | START OF TEXT | 0x12 | DC2 | DEVICE CONTROL TWO | 0x03 | ETX | END OF TEXT | 0x13 | DC3 | DEVICE CONTROL THREE | 0x04 | EOT | END OF TRANSMISSION | 0x14 | DC4 | DEVICE CONTROL FOUR | 0x05 | ENQ | ENQUIRY | 0x15 | NAK | NEGATIVE ACKNOWLEDGE | 0x06 | ACK | ACKNOWLEDGE | 0x16 | SYN | SYNCHRONOUS IDLE | 0x07 | BEL | BELL | 0x17 | ETB | END OF TRANSMISSION BLOCK | 0x08 | BS | BACKSPACE | 0x18 | CAN | CANCEL | 0x09 | HT | HORIZONTAL TABULATION | 0x19 | EM | END OF MEDIUM | 0x0A | LF | LINE FEED | 0x1A | SUB | SUBSTITUTE | 0x0B | VT | VERTICAL TABULATION | 0x1B | ESC | ESCAPE | 0x0C | FF | FORM FEED | 0x1C | FS | FILE SEPARATOR | 0x0D | CR | CARRIAGE RETURN | 0x1D | GS | GROUP SEPARATOR | 0x0E | SO | SHIFT OUT | 0x1E | RS | RECORD SEPARATOR | 0x0F | SI | SHIFT IN | 0x1F | US | UNIT SEPARATOR |
| |
|
表 : C1 集合
番号 | 略 | 意味 | 番号 | 略 | 意味 | 0x80 | | | 0x90 | DCS | DEVICE CONTROL STRING | 0x81 | | | 0x91 | PU1 | PRIVATE USE ONE | 0x82 | BPH | BREAK PERMITTED HERE | 0x92 | PU2 | PRIVATE USE TWO | 0x83 | NBH | NO BREAK HERE | 0x93 | STS | SET TRANSMIT STATE | 0x84 | | | 0x94 | CCH | CANCEL CHARACTER | 0x85 | NEL | NEXT LINE | 0x95 | MW | MESSAGE WAITING | 0x86 | SSA | START OF SELECTED AREA | 0x96 | SPA | START OF SELECTED AREA | 0x87 | ESA | END OF SELECTED AREA | 0x97 | ESP | END OF GUARDED AREA | 0x88 | HTS | CHARACTER TABULATION SET | 0x98 | SOS | START OF STRING | 0x89 | HTJ | CHARACTER TABULATION WITH JUSTIFICATION | 0x99 | | | 0x8A | VTS | LINE TABULATION SET | 0x9A | SCI | SINGLE CHARACTER INTRODUCER | 0x8B | PLD | PARTIAL LINE FORWARD | 0x9B | CSI | CONTROL SEUENCE INTRODUCER | 0x8C | PLU | PARTIAL LINE BACKWARD | 0x9C | ST | STRING TERMINATOR | 0x8D | RI | REVERSE LINE FEED | 0x9D | OSC | OPERATING SYSTEM COMMAND | 0x8E | SS2 | SINGLE SHIFT TWO | 0x9E | PM | PRIVACY MESSAGE | 0x8F | SS3 | SINGLE SHIFT THREE | 0x9F | APC | APPLICATION PROGRAM COMMAND |
| |
|
| |
△ |
| |
|
■ JISX0208 → SJIS
- コードから 0x2121 を引く
- (コード & 0x100) が0でなければ コードに 0x9E, 0ならばコードに 0x40 を足す
- 下位バイトが 0x7F 以上ならば コードに 1 を足す
- [上位バイトだけの処理] 上位バイトを右に1ビット シフトし、それに 0x81 を足す
- (0xA000 <= コード) ならばコードに 0x4000 を足す
| |
|
■ SJIS → JISX0208
- (0xE000 <= コード) ならばコードから 0x4000 を引く
- [上位バイトのみ] 上位バイトから 0x81 を引き 1ビット左にシフトする
- 下位バイトが 0x80 以上ならコードから1を引く
- 下位バイトが 0x9E 以上ならコードに 0x100 を足し、 コードから 0x9E を引く。 そうでなければコードから0x40 を引く
- コードに 0x2121 を足す。
| |
|
「コードに 0x100 を足し、コードから 0x9E を引く」 というのはつまり、
「上位バイトに1を足し,下位バイトから 0x9E を引く」 であり、
「コード全体に 0x62 を足す」ことでもあります。
| |
|
| |
△ |
| |
|
UTF-8 を改造した、ISO-8859-1 ( Latin-1 ) 向けのエンコーディングです。 UTF-8 同様辞書順が保存されます。 文字の先頭バイトがわかりません。 標準として採用されなかった模様です。 ここでは参考までにアルゴリズムを説明します。
| |
|
u1-u7はそれぞれ8ビット値です。
- 0x00-0xFF (1Byte)
1. u1 = ucode; 2. u1 を出力 - 0x0100-0x7FF (2Byte)
1. u1 = ((ucode >> 7) & 0x0F) | 0x80; 2. u2 = (ucode & 0x7F) | 0x80; 3. u1,u2 の順に出力 - 0x0800-0xFFFF (3Byte)
1. u1 = ((ucode >> 14) & 0x03) | 0x90; 2. u2 = ((ucode >> 7) & 0x7F) | 0x80; 3. u3 = (ucode & 0x7F) | 0x80; 4. u1,u2,u3 の順に出力 - 0x00010000-0x007FFFFF (4Byte)
1. u1 = ((ucode >> 21) & 0x03) | 0x94; 2. u2 = ((ucode >> 14) & 0x7F) | 0x80; 3. u3 = ((ucode >> 7) & 0x7F) | 0x80; 4. u4 = (ucode & 0x7F) | 0x80; 5. u1,u2,u3,u4 の順に出力 - 0x00800000-0x7FFFFFFF (5Byte)
1. u1 = ((ucode >> 28) & 0x07) | 0x98; 2. u2 = ((ucode >> 21) & 0x7F) | 0x80; 3. u3 = ((ucode >> 14) & 0x7F) | 0x80; 4. u4 = ((ucode >> 7) & 0x7F) | 0x80; 5. u5 = (ucode & 0x7F) | 0x80; 6. u1,u2,u3,u4,u5 の順に出力
| |
|
| |
△ |
| |
|
用語 | 意味 | 文字集合,文字セット : Charcter Set / charset (狭義) | 単なる文字の集合.文字に対して番号を振っていない状態. | Charcter Encoding Method | 文字集合(狭義) から数値への変換方法の定義. 方法を定義するもので文字集合とは独立のもの. | 符号化文字集合 : Coded Character Set,Codeset , CCS | 文字集合(狭義) + Chaacter Encoding Method. 文字集合 <-> 数値のマッピング.数値はあくまでも数値で あって,バイト列とは関係ない. 通常 CCS は文字コード表になっていて,16進表記されており, CES に直結している場合が多い. | Character Encoding Scheme , CES | CES は "バイト列" <-> "1つ以上の CCS" のマッピングを あらわす. たとえば ISO-2022-JP ( の CES )は ASCII,JISX0201(ラテン), JISX0208 の3つの CCS とバイト列のマッピングを定義する ものである. | 文字集合,文字セット : Charcter Set / charset (広義) | CCSes ( 1つ以上の CCS ) + CES. バイト列を文字列に変換する方法およびその逆. 一般にいう ISO-2022-JP は, ASCII, JISX0201(ラテン), JISX0208 の3つの CCS と ISO-2022-JP の CES から 構成されるものを指す. |
| |
|
| |
△ |
| |
|
[1] | JIS ハンドブック 情報処理 用語 符号 データコード編-1999 , 1999, 財団法人 日本規格協会 | [2] | 日本工業規格 国際符号化文字集合(UCS) 第1部 体系及び基本多言語面,1995 , 財団法人 日本規格協会 | [3] | UTF-7 A Mail-Safe Transformation Format of Unicode, RFC-2152 , D. Goldsmith, M. Davis , 1997 | [4] | UTF-8, a transformation format of ISO 10646, RFC-2279 , F. Yergeau , 1998 | [5] | Charsets Table, http://shika.aist-nara.ac.jp/member/nori-d/inet/i18n/charset-tab.html | [6] | 文字コード, http://dennou-t.ms.u-tokyo.ac.jp/arch/zz1998/mozi/zengaku.html | [7] | ISO 2022 で定められた情報用符号拡張のエスケープシーケンス一覧, http://www.tomo.gr.jp/wnn/furoku.html | [8] | JISX0213 公開レビュー, http://jcs.aa.tufs.ac.jp/jcs/pubrev/index.html | [9] | Unicode Home Page, http://www.unicode.org/ | [10] | fj.kanji の各記事 |
| |
|