ぼんやりとしか知らないなということで調べてみる。
http://unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0208.TXTの「the JIS X 0208 code」を使いつつJIS X 0208コード表 - CyberLibrarianの16区〜47区および48区〜84区をチェックすれば良さそうだ。
と言うことで以下のようなメソッドで良さそう。
def is_level1(jisx0208code): return 0x3021 <= jisx0208code <= 0x4f53 def is_level2(jisx0208code): return 0x5021 <= jisx0208code <= 0x7426
これを用いてJIS0208.TXT
を解析するとJIS漢字コード - Wikipediaの通りに第一水準漢字は2,965字、第二水準漢字は3,390字として求まる。
ついでにAdobe社の規格であるPr6およびPr6NについてCIDの分布を見ると、Pr6については
- 第一水準漢字: CID1125〜CID4089
- 第二水準漢字: CID4090〜CID7477,CID8284〜CID8285
に分布していることが分かる。
一方Pr6Nの場合、JIS X 2013:2004対応のためにCMapが変化してしまって少々複雑になっているようだ。というか少々どころでなく汚い感じになったので掲載はやめておこう...。