漢字3と第三水準

取引先の人と話していて、「漢字3と第三水準の文字って、一瞬、混同しちゃうことあるよね」とかいう話が出たので、以下、自分なりに整理しておく。

結論

漢字3はIBM拡張文字の別名。第三水準はJIS X 0213で定められている文字の前半。両者は別物。

説明

用語定義
  • ここでは、文字をコンピュータ上で扱えるように符号化したバイト表現を「文字コード」、ある文字集合についての文字と文字コードの対応を「文字コード規格」と称する
  • PC上である文字を使える状態を、「その文字の文字コードを処理できて、その文字を表示できる書体が存在する」と定義する*1
漢字3
  • 大昔、メインフレーム全盛のころ、当時のJISの日本語の文字集合規格であるJIS C 6226の文字(第一水準と第二水準などの約6800字)だけでは不足と考えたIBM社が、JIS C 6226に含まれていない漢字360字+非漢字28字を「IBM拡張文字」という文字集合として定めた。
  • 時代は流れ、Windowsが世に現われて幾年が過ぎた。マイクロソフトシフトJISの一種である「Windows-31J」という文字コード規格を定めた。
  • Windows-31J」は、Windows3.1以降のWindowsで使うことができる。
  • Windows-31J」は、JIS C 6226の後継であるJIS X 0208という文字集合(6879字)に加えて、上記の「IBM拡張文字」を含む*2
  • Windows3.1以降は「Windows-31J」に含まれる全部の文字に対応する書体が付属している。
  • MS-IMEIMEパッドの文字一覧で「IBM拡張文字」に属する文字を選択する時*3、文字種が「漢字3」と表示される*4
  • 以上より、「IBM拡張文字」の別名として「漢字3」が使われる。
  • 第一水準と第二水準の文字との重複はない。
第三水準
  • 2000年に定められたJIS X 0213というJISの日本語文字集合規格で定められた文字のうち、前半の領域で定められている文字が第三水準(後半の領域は第四水準)。
  • 第一水準と第二水準の文字との重複はない。
  • 漢字3(IBM拡張文字)のほとんどを含むが、漢字3にあって第三水準にない文字も一部ある。
  • 2000年の時点で漢字1249字+非漢字659字。後に2004年に漢字10字が追加され、現在は漢字1259字+非漢字659字。
  • シフトJISの一種である「Shift_JIS-2004」という文字コード規格で使うことができる。また、Unicode3.2以降でも使うことができる。
  • Windowsは「Shift_JIS-2004」に対応していないので*5Windows上で第三水準の文字はシフトJISでは使えない*6
  • WindowsXPはUnicode3.2に対応していて第三水準の文字の多くを含む書体が付属している*7。したがって、第三水準の文字の多くをUnicodeで使うことができる*8
  • WindowsVistaはUnicode3.2に対応していて*9、第三水準の全部の文字を含む書体が付属している。したがって、第三水準の全部の文字をUnicodeで使うことができる。
  • なお、WindowsXPでもVistaでも、第三水準の文字を使うには、使用するアプリもUnicode3.2以降に対応している必要がある。

*1:処理の定義が曖昧だが、御勘弁を

*2:Windows-31J」は、他に「NEC拡張文字」などを含むが、ここでは詳細割愛

*3:該当する文字コードは0xFA40〜0xFC4B

*4:第一水準の漢字の文字種は「漢字1」、第二水準の漢字の文字種は「漢字2」と表示される。これが混同の原因だわな

*5:設定を変えて対応する方法はあるが、弊害があるので、あまり使われていない

*6:漢字3と第三水準で重複している文字を漢字3として使うことはできる

*7:全部ではない

*8:対応している書体を追加すれば、第三水準の全部の文字を使うことができる

*9:Unicode4.0.0対応かも