日本の「漢字表」
当用漢字表
1946年に内閣から告示された1850字の漢字表です。
現代国語を書き表すために日常使用する漢字の範囲を定めたもので、「この表の漢字で書き表せない言葉は、別の言葉に替えるか、又は、仮名書きにする」となっており、漢字制限の色合いを強く出しています。
さらに1948年に「当用漢字音訓表」、1949年に「当用漢字字体表」が告示されており、新聞などで用いる音訓や字体が厳しく定められました。
当用漢字別表
1948年に内閣から告示された881字の漢字表です。
当用漢字のうち「義務教育期間において読み書きともに必修せしめるべき漢字の範囲を示したもの」です。
人名用漢字別表
1951年に内閣から告示された92字の漢字表です。
当用漢字に含まれていない漢字で、子供の名前に用いて良いものとして定められました。
その後1976年・1981年・1990年・1997年・2004年・2009年に追加・改正が行なわれ、現在は985字になっています。
一覧表はここにあります。
学年別漢字配当表
「当用漢字別表」881字を小学校の各学年に配当したもので、1958年に文部省から「小学校学習指導要領」の付録として出されました。
俗に「教育漢字」と呼ばれています。
1968年・1977年・1989年の追加・改訂を経て、現在は1006字を、各学年にそれぞれ80字・160字・200字・200字・185字・181字配当するようになっています。
JIS C 6226-1978
1978年に日本規格協会から出された6802字の文字表で、俗に「旧JIS漢字」と呼ばれています。
全ての文字に「区点番号」が振られています。
16〜47区に「第1水準」漢字2965字、48〜83区に「第2水準」漢字3384字、01〜07区に非漢字453字が収められています。
「第1水準」漢字は、「当用漢字表」1850字と当時の「人名用漢字別表」120字を全て含んでおり、五十音順に並んでいます。
「第2水準」漢字は部首順で、部首内は画数順に並んでいます。
なお、「字形の違いがわずかである」漢字は、同一のコードを共有することになっていますが、現実には表の字体がほとんどのコンピュータで採用されました。
初版では誤植があったのですが、1982年までにバグフィクスされています。
一覧表はここにあります。
常用漢字表
1981年に内閣から告示された1945字の漢字表で、「当用漢字表」の改定という形になっています。
法令・公用文書・新聞・雑誌・放送等、一般の社会生活で、分かりやすく通じやすい文章を書き表すための漢字使用の目安となるもので、漢字制限という要素は薄れています。
また、この表に使われている字体は「明朝体活字のうちの一種」で、「現在行なわれている各種の明朝体活字等のデザイン上の差異を問題にしない」ことになっています。
一覧表はここにあります。
JIS X 0208-1983
1983年にJIS C 6226-1978の改定版として日本規格協会から出された6877字の文字表で、俗に「新JIS漢字」と呼ばれています。
出された当初はJIS C 6226-1983という名前でしたが、1987年に現在の名前に変更されました。
16〜47区に「第1水準」漢字2965字、48〜84区に「第2水準」漢字3388字、01〜08区に非漢字524字が収められており、基本的にJIS C 6226-1978のコードを継承していますが、
「常用漢字表」1945字と当時の「人名用漢字別表」166字の影響を受けているため、字体の変更や入換が多くなされています。
なお、「字形の違いがわずかである」漢字は同一のコードを共有することになっており、ここで変更された字体も「別の文字概念を採用したわけではない」ということになっていますが、現実には新しいコンピュータではこの表に合わせて字体の変更がなされました。
一覧表はここにあります。
JIS X 0208-1990
1990年にJIS X 0208-1983の改定版として日本規格協会から出された6879字の文字表です。
16〜47区に「第1水準」漢字2965字、48〜84区に「第2水準」漢字3390字、01〜08区に非漢字524字が収められており、基本的にJIS X 0208-1983のコードを継承しています。
なお、「字形の違いがわずかである」漢字は同一のコードを共有することになっていますが、「人名用漢字別表」の改正に対応して「」を追加したことは、JIS X 0208-1983が「」をすでに含んでいることと矛盾しています。
一覧表はここにあります。
JIS X 0212-1990
1990年に日本規格協会から出された6067字の文字表で、「JIS補助漢字」と呼ばれています。
区点番号が用いられており、16〜77区に漢字5801字が、02〜11区に非漢字266字がそれぞれ収められています。
JIS X 0208-1990と重なっている文字はありません。
漢字は部首順で、部首内は画数順に並んでいます。
一覧表はここにあります。
JIS X 0221-1995
1995年に日本規格協会から出された34168字の文字表で、俗に「Unicode」と呼ばれています。
国際規格ISO/IEC 10646-1:1993の日本語訳です。
現時点では全ての文字に16進数4桁のコードが振られており、4E00〜9FA5に漢字20902字が収められています。
ただしここでの漢字は、日本のJIS規格、中国のGB規格、台湾のCNS規格、韓国のKS規格などから集めてきたものを、一度ごちゃまぜにしてまた並べ直したものであるため、色々な点で矛盾が起こっています。
また、これらの規格には含まれていないはずの漢字も、数多く紛れ込んでしまっています。
JIS X 0208:1997
1997年に日本規格協会から出された6879字の文字表です。
基本的にはJIS X 0208-1990と同一ですが、JIS C 6226-1978からJIS X 0208-1990に至る変遷を網羅しており、その矛盾を全て内包するものとなっています。
日本の「漢字コード」
文字を表すバイト列中に、16進数で「1B 24 42」というバイト列が来たらそれ以降はJIS X 0208-1983、「1B 28 42」というバイト列が来たらそれ以降はASCIIとみなす方法で、俗に「JISコード」と呼ばれています。
JIS X 0208-1983の文字については、区点番号の「区」と「点」それぞれに32を加えて、2バイトの文字コードとします。
例えば「10月18日」という文字列は「31 30 1B 24 42 37 6E 1B 28 42 31 38 1B 24 42 46 7C 1B 28 42」となります。
なお「1B 24 40」でJIS C 6226-1978、「1B 28 4A」でJIS X 0201ローマ文字、「1B 24 28 44」でJIS X 0212-1990への切替えを表すこともできます。
EUC-JP
区点番号の「区」と「点」それぞれに160を加えて、2バイトの文字コードとする方法です。
この方法だと「10月18日」という文字列は「31 30 B7 EE 31 38 C6 FC」となります。
JIS X 0208-1990・JIS X 0208-1983・JIS C 6226-1978のいずれを使うかは、使う人の自由にまかされます。
また、16進数で「21」〜「7E」の文字にASCIIとJIS X 0201ローマ文字のいずれを使うかは、歴史的にはASCIIの方が正しいのですが、実際には使う人の自由にまかされます。
JIS X 0212-1990の文字は「8F」の後に「区」と「点」それぞれに160を加えた3バイトの文字コードで表すことができます。
この方法だと例えば「酒」という文字列は「8F B5 E3 BC F2」となります。
Shift_JIS
区点番号に以下の演算を施して、2バイトの文字コードとする方法です。
- 「区」が01〜61の奇数の場合
「区」に257を加えて2で割った値を1バイト目とします。
「点」が01〜63なら63を加えた値を、さもなくば64を加えた値を2バイト目とします。
- 「区」が02〜62の偶数の場合
「区」に256を加えて2で割った値を1バイト目とし、「点」に158を加えた値を2バイト目とします。
- 「区」が63〜93の奇数の場合
「区」に385を加えて2で割った値を1バイト目とします。
「点」が01〜63なら63を加えた値を、さもなくば64を加えた値を2バイト目とします。
- 「区」が64〜94の偶数の場合
「区」に384を加えて2で割った値を1バイト目とし、「点」に158を加えた値を2バイト目とします。
この方法だと「10月18日」という文字列は「31 30 8C 8E 31 38 93 FA」となります。
JIS X 0208-1990・JIS X 0208-1983・JIS C 6226-1978のいずれを使うかは、使う人の自由にまかされます。
また、16進数で「21」〜「7E」の文字にASCIIとJIS X 0201ローマ文字のいずれを使うかは、歴史的にはJIS X 0201ローマ字の方が正しいのですが、実際には使う人の自由にまかされます。
UCS-2
JIS X 0221-1995の16進数4桁コードを、そのまま2バイトの文字コードとする方法です。
通常は最初に「FEFF」を追加して、UCS-2であることをはっきりさせると同時に、バイト順を確定します。
この方法だと「10月18日」という文字列は「FEFF 0031 0030 6708 0031 0038 65E5」となることから、上位バイトが先の場合は「FE FF 00 31 00 30 67 08 00 31 00 38 65 E5」、下位バイトが先の場合は「FF FE 31 00 30 00 08 67 31 00 38 00 E5 65」となります。
JIS X 0221-1995の16進数4桁コードに以下の演算を施して、1〜3バイトの文字コードとする方法です。
- 0000〜007Fの場合
下2桁をそのまま1バイトのコードとします。
- 0080〜07FFの場合
元のコードを2進数に変換した値を00000xxxxxyyyyyyとする時、2進数で110xxxxxを1バイト目とし、10yyyyyyを2バイト目とします。
- 0800〜FFFFの場合
元のコードを2進数に変換した値をxxxxyyyyyyzzzzzzとする時、2進数で1110xxxxを1バイト目とし、10yyyyyyを2バイト目とし、10zzzzzzを3バイト目とします。
この方法だと「10月18日」という文字列は「31 30 E6 9C 88 31 38 E6 97 A5」となります。