JIS X 0213:2004

JIS X 0213 の名称は「7ビット及び8ビットの2バイト情報交換用符号化拡張漢字集合」です。JIS X 0208に4354字を追加して、計1万1233字の文字を定めています。

文字セット は JIS X 0208 の区点の表を2面にして、面-区-点の3つの十進数で登録しています。2000年に制定され、2004年、2012年に改正されました。2004年の改訂が大きかったので、多くの場合区別のために 2004 の数字をつけます。

文字セット

区点の表の一部です。水色の背景の部分が追加されています。

JIS X 0213 の面区点の表(1面の一部)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
2022 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F ...
121   , . : ; ? ! ´ ` ¨ ...
222 ' ...
323 ...
424 ...
525 ...
626 Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο ...
727 А Б В Г Д Е Ё Ж З И Й К Л М Н ...
828 ...
929   ¡ ¤ ¦ © ª « ­ ® ¯ ² ³ · ¸ ...
102A Ą ˘ Ł Ľ Ś Š Ş Ť Ź Ž Ż ą ˛ ł ľ ...
112B ʔ ɦ ʘ ǂ ɓ ɗ ʄ ɠ Ɠ œ Œ ɨ ʉ ɘ ɵ ...
122C ...
132D ...
142E 𠀋 仿 ...
152F ...
1630 ...
1731 ...
1832 ...
...... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

JIS X 0208 の空き領域に追加しました。でも足りなくて第2面を作りました。

これが第1面です。緑と黄色部分が JIS X 0208 からある文字。水色部分が JIS X 0213:2004 で追加された部分です。

JIS X 0208 の隙間が埋まりました。これが第1面

第2面です。まだ空きがあります。

上と下に文字が配置され真ん中は空き領域になっています。

エンコーディング

使用するときはこれにある計算を施して使います。この場合 面区点に登録された文字全体を文字セット、計算のきまりをエンコーディングといいます。

「あ」と「亜」の一覧に、第2面の「晛」も加えました。エンコーディングの名前は JIS X 0208 と区別するために、-2004 をつけて。ISO-2022-JP-2004、Shift_JIS-2004、EUC-JP-2004 とよばれます。

JIS X 0213 のエンコーディング
方式 操作 「あ」 「亜」 「晛」 第1面第2面の区別方法
面区点 そのまま 1-4-2 1-16-1 2-14-1
区点(16進数) それぞれ2桁、計4桁に 0402 1001 0E01 区点だけで計算
ISO-2022-JP-2004 0x2020を加える 2422 3021 2E21 1B 24 28 51:で第1面、1B 24 28 50:で第2面、1B 28 42:でASCII
Shift_JIS-2004 複雑なので省略 82A0 889F F39F 第1バイトがF0からFCまでの範囲は第2面
EUC-JP-2004 0xa0a0を加える A4A2 B0A1 AEA1 8Fを前につけて第2面

2面まであるので、ISO-2022-JP-2004とEUC-JP-2004では2バイトでは区別できない場合が出てきます。

ISO-2022-JP-2004では、切り替え方式をとります。もともと1B 24 42のあとは漢字、1B 28 42のあとはASCIIというように切り替えていたので、この切り替えを3種にすれば、1面、2面、ASCIIの切り替えができます。

EUC-JP-2004では第2面を使うときだけ1文字限りの切り替えを入れます。1文字限りの切り替えは見方をかえれば第2面は3バイトということです。

Shift_JIS-2004ではShift_JISの拡張で全部の文字を2バイトで表すことができます。ただし、0208の時代から広く使われていた Shift_JIS はすでに独自の規格外の拡張をしていました。たとえばWindowsで使われている Windows-31J などです。この独自拡張はShift_JIS-2004の拡張と共存できないので、結局Windowsには採用されていません。Windowsは内部ではユニコードを使っていますので、JIS X 0213 の文字はほとんど全部取り扱うことができます。ワープロなどで保存するときはユニコードですから問題ありません。Shift_JISにして出力すると記録できない文字が出る可能性があります。注意が必要です。

いろいろなエンコードの比較

亜の近辺と晛の近辺の一覧。2022(ISO-2022-JP)、SJIS(Shift_JIS)、EUC(EUC-JP)は面-区-点を元に変換しているので区点で隣り合う文字は他のエンコーディングでもほぼ隣り合います。それに対して、Unicode系の UTF-16 と UTF-8 では一般には隣り合いません。

2022欄の 3-は JIS X 0213 の第1面であることを表します。4- は第2面です。

いろいろなエンコードの比較(亜の近辺と第2面の晛の近辺)
面-区-点2022SJISEUCUTF-16UTF-8文字
1-16-13-3021889FB0A14E9C E4BA9C
1-16-23-302288A0B0A25516 E59496
1-16-33-302388A1B0A35A03 E5A883
1-16-43-302488A2B0A4963F E998BF
1-16-53-302588A3B0A554C0 E59380
1-16-63-302688A4B0A6611B E6849B
1-16-73-302788A5B0A76328 E68CA8
1-16-83-302888A6B0A859F6 E5A7B6
1-16-93-302988A7B0A99022 E980A2
1-16-103-302A88A8B0AA8475 E891B5
1-16-113-302B88A9B0AB831C E88C9C
1-16-123-302C88AAB0AC7A50 E7A990
1-16-133-302D88ABB0AD60AA E682AA
1-16-143-302E88ACB0AE63E1 E68FA1
1-16-153-302F88ADB0AF6E25 E6B8A5
2-14-14-2E21F39F8FAEA1665B E6999B
2-14-24-2E22F3A08FAEA26663 E699A3
2-14-34-2E23F3A18FAEA3231F5 F0A387B5𣇵
2-14-44-2E24F3A28FAEA4231B6 F0A386B6𣆶
2-14-54-2E25F3A38FAEA5666A E699AA
2-14-64-2E26F3A48FAEA6666B E699AB
2-14-74-2E27F3A58FAEA7666C E699AC
2-14-84-2E28F3A68FAEA8666D E699AD