陳腐化するデジタル資料

特集2

失われた文字コード
安岡孝一（やすおかこういち）

も、平仮名や片仮名など一部が読めるのに他が文字化けしていたりすると、何としても残りも読み▊ はじめにたくなってしまうのが人のサガである。

「失われた文字コード」とタイトルに付けたも

本稿では、そのような「失われた文字コード」のの、実は、文字コードそのものが失われているのうち、本誌の読者の手元に残っていそうな文字わけではない。失われているのは、ある文字コーコードとして、特に「シフト GB」と「文字鏡コード」ドを読むための環境であって、その文字コードでを取り上げる。また、これらに加えて「住基コー書かれたファイルそれ自体は、古い CD-R や磁気ド」に対しても、警鐘を鳴らしておくことにする。

ディスクやその他の記憶媒体の中に、ひっそりとしかし厳然と存在していたりする。そのような「失▊ シフト GB

われた文字コード」で書かれたファイルが、何かのはずみで我々の前に姿を現す。実際、読めないGB 2312[1] に収録された簡体字を、日本語版文字コードで書かれたファイルほど、始末の悪い

MS-DOS や日本語版 Windows 3.x で使うためにものは無い。しかも、完全に読めないならまだし開発された文字コードである。本来 GB 2312 は、
94 × 94 の文字表を A1A1 〜 FEFE に割り当てて

図116 区

用 い る が、 日 本 語 版 MS-DOS で は FD

GB 2312 の 16 区（シフト GB の 889F 〜 88FC）
01020304050607080910111213141516171819

や FE のコードは使えなかった。そこで、

0119

啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺

JIS X 0208 をシフト JIS に変換するやり

2039

按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒

方をまねて、GB 2312 の 94 × 94 の文4059

叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰

字表を 47 × 188 に折り曲げ、1 バイト6079

败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮

8094

梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥図216 区

02030405

06

0708

09

10111213

14

けてしまうのが、シフト GB の基本的ア

15161718

190119亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵2039 梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇4059

鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異60
79 移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸8094

稲茨芋鰯允印咽員因姻引飲淫胤蔭

76 ● ṽሼᢥ₰ᖱႎ⯪ℂ⎇ⓥ

目に 40 〜 7E・80 〜 FC を使うことで、
いわばシフト JIS の上に GB 2312 を載っ

JIS X 0208 の 16 区（シフト JIS の 889F 〜 88FC）
01

目 に 81 〜 9F・E0 〜 EF を、2 バ イ ト

第 11 号

イデアである。
当然、同じ文字コード上にシフト GBとシフト JIS が重なることになり、同じ「889F」という文字コード（図 1・2 の16-01 にあたる）であっても、シフトGB では「啊」を、シフト JIS では「亜」を、それぞれ意味することになる。たとえば

失われた文字コード（安岡）「白雪皑皑」という文字列は、シフト GB

47 区

01020304050607080910111213141516171819

では「88D5 9948 88A6 88A6」という0119文字コードになるが、これをシフト JIS

2039

蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑だと思って表示すると「易僣姶姶」となっ4059

枠鷲亙亘鰐詫藁蕨椀湾碗腕てしまうわけだ。逆に言えば、「易僣姶6079

姶」とシフト JIS で書かれたファイルを、8094

シフト GB のフォントで表示すれば、見図3事「白雪皑皑」になるという仕掛けだっ

JIS X 0208 の 47 区（ シ フ ト JIS の 9840 〜 987E・9880 〜989E）た。これにより、フォント切り換えの可能なワープロソフト上では、日本語と中47 区

010119稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣2039

洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨4059

先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡において全てのフォントを Unicode 化6079

宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷

することを決定、同時に MS-Word の内80
94

橡像向象萧硝霄削哮嚣销消宵淆晓部コードを Unicode 化したため、それ図4国語を混在して表示できたのである。

✿ Windows 98 以降のシフト GBと こ ろ が Microsoft は、Windows 98までのシフト GB は使えなくなってし

02

03

0405

06

0708

09

10

1112

13

1415

16171819

GB 2312 の 47 区（ シ フ ト GB の 9840 〜 987E・9880 〜989E）

まった。シフト JIS の文字コードのうち、
CP932[2] において Unicode との対応を規定されている部分しか、使えなくなっ13 区

0102030405

060708てしまったのである。たとえば、CP932

陷

は 9873 〜 989E（図 3 の 47-52 〜 47-4059

湘乡翔祥详想响享94）に、文字を収録していない。一方シ60
79

フト GB は、この部分に「显」〜「晓」

80
94収録していた。この結果、Windows 98

10

図51147-52 〜 47-61
47-62 〜 47-77
47-78 〜 47-80
47-81
47-82
47-83
47-84 〜 47-88
47-89 〜 47-93
47-94
84-01 〜 84-94
85-01 〜 85-94
86-01 〜 86-94
87-01 〜 87-78
87-79
87-80
87-81 〜 87-90
87-91
87-92 〜 87-94

9873 〜 987C
987D 〜 987E・9880 〜 988D
988E 〜 9890
9891
9892
9893
9894 〜 9898
9899 〜 989D
989E
EA9F 〜 EAFC
EB40 〜 EB7E・EB80 〜 EB9E
EB9F 〜 EBFC
EC40 〜 EC7E・EC80 〜 EC8E
EC8F
EC90
EC91 〜 EC9A
EC9B
EC9C 〜 EC9E

1314

15

16171819

限线相厢镶香箱襄项巷橡像向象萧硝霄削哮
晓黠

嚣销消宵淆

黟鼷

Unicode 対 応 シ フ ト GB の 13 区（8740 〜 877E・8780 〜879E）

表1
オリジナルのシフト GB
GB 2312
シフト GB12显险现献县腺馅羡宪

20
39の 43 字（ 図 4 の 47-52 〜 47-94） を

090119

移動先
13-11 〜 13-20
13-32 〜 13-47
13-63 〜 13-65
13-66
13-6713-68
13-69 〜 13-73
13-75 〜 13-79
13-83
89-01 〜 89-94
90-01 〜 90-94
91-01 〜 91-94
92-01 〜 92-78
13-84
13-88
92-81 〜 92-90
13-89
92-92 〜 92-94

シフト GB の Unicode 対応

Unicode 対応シフト GB
NEC 拡張文字版シフト GB
IBM 拡張文字版シフト GB
874A 〜 8753
874A 〜 8753
875F 〜 876E
875F 〜 876E
877E・8780 〜 8781
877E・8780 〜 8781
8782
FA59
8783
8783
8784
FA5A
8785 〜 8789
8785 〜 8789
878B 〜 878F
878B 〜 878F
8793
8793
ED40 〜 ED7E・ED80 〜 ED9E FA5C 〜 FA7E・FA80 〜 FABA
ED9F 〜 EDFCFABB 〜 FAFC・FB40 〜 FB5B
EE40 〜 EE7E・EE80 〜 EE9E FB5C 〜 FB7E・FB80 〜 FBBA
EE9F 〜 EEECFBBB 〜 FBFC・FC40 〜 FC4B
8794
8794
8798
8798
EEEF 〜 EEF8
FA40 〜 FA49
8799
8799
EEFA 〜 EEFC
FA55 〜 FA57

Journal of JAET vol.11 ● 77

特集2

陳腐化するデジタル資料

や Windows 2000 では、シフト GB の「显」〜「晓」を表示できなくなってしまった。

ただし、サルベージ変換後のテキストや rtf は、現在は読み書きが出来ても、いずれ遠い将来には、この問題を回避するため、シフト GB を使用しまた「失われた文字コード」となりかねない。こていた各社は、これらの文字を 13 区に移動させれらのテキストや rtf は、プリントアウトして紙ることにした（図 5）。CP932 の 13 区にあたるの形にしておくか、せめてフォント埋め込みの部 分（8740 〜 877E・8780 〜 879E） は、NECPDF にしておく必要があるだろう。

特殊文字と呼ばれる独自拡張文字を収録していたが、この部分をこれまでのシフト GB は使っていなかったからだ。また、GB 2312 の 84 区以降▊ 文字鏡コードに関しても、NEC 拡張文字のある 89 区以降に移『今昔文字鏡』で使われている 10 進 6 桁の文動させた。移動の詳細を表 1 に示す。なお、NEC字鏡番号に対し、000001 〜 005640、005641

拡張文字（ED40 〜 EEFC）に対しては、全く同〜 011280、011281 〜 016920、 ……、 とじ文字が多少順序を変えて IBM 拡張文字（FA405640 個ずつに区切り、各 5640 個を JIS X 0208〜 FC4B）にも収録されており、ファイル入出力の 16 〜 45・48 〜 77 区に割り当てた文字コーの際に相互に自動変換される。このような自動変ドである。文字コード上は完全にダブった形とな換がおこなわれた場合の文字コードを、表 1 にる が、000001 〜 005640 は「Mojikyo M101」「IBM 拡張文字版シフト GB」として示しておく。

フ ォ ン ト に、005641 〜 011280 は「MojikyoM102」 フ ォ ン ト に、011281 〜 016920 は✿ シフト GB のサルベージ「Mojikyo M103」フォントに、……、それぞれ前世紀末には一世を風靡したシフト GB も、今収録することにより、フォント切り換えによって世紀に入ってからは衰退の一途をたどってい全ての文字を扱うことができる、というのがウリる。開発の一翼を担ったオムロンも、2010 年であった。逆に言えば、文字鏡フォントが実装さ5 月で『楽々中国語』（cWnn）のサポートを完れていない環境下では、文字鏡コードで書かれた全に打ち切ってしまった。現時点でシフト GB「一」「ᛡ」「⨘」……は、全て「亜」に文字化けをサポートしている製品は、わずかに高電社のすることになる（図 6 〜 8 および図 2）。

[3]となってしまっている。

文字鏡番号の 000001 〜 049964 は基本的にでは、何かの拍子にシフト GB のファイルを発掘『大漢和辞典』の検字番号を踏襲しているが、そしてしまった場合、『ChineseWriter』を購入してれ以降の番号は文字鏡研究会が独自に付けたもの読むしかないのだろうか。

である。管理を担当する文字鏡フォントセンター『ChineseWriter』のみ

実は、シフト GB のサルベージに関しては、針[4]は、2000 年 9 月の使用許諾書において、文字鏡」番号と他の文字集合との対応表および、その対応というフリーウェアが、現時点において最も強力表を用いて文字の変換をおこなうソフトウェア等なツールである。各社固有のシフト GB テキストの作成・配布を、明確に禁止している。

谷壮一氏が公開している「中国語コンバータを GB 2312 の A1A1 〜 FEFE に変換してくれると同時に、シフト GB・シフト JIS 混在の rtf 形式✿ 文字鏡コードの現況も変換可能というスグレモノだ。すなわち、doc

文字鏡コードで書かれた MS-Word や Excel あ形 式 の シ フ ト GB が 発 掘 さ れ た 場 合 で も、MS-

るいは一太郎などのファイルは、文字鏡フォント

Word の「リッチテキスト形式」でそのまま保存が実装されていない環境では文字化けが起こるしなおすことができれば、「中国語コンバータ」が、文字鏡フォントセンターは 2008 年 3 月以によって、フォント名も含め変換可能[5]となっ

78 ● ṽሼᢥ₰ᖱႎ⯪ℂ⎇ⓥ

降、文字鏡フォントの無償ダウンロードを打ち切っている。文字鏡番号の付与をおこなっていている。

第 11 号

失われた文字コード（安岡）
たはずの文字鏡研究会は、ほぼ同時期

16 区[6]0119

も「再構築中」の状態が続いている。ま2039た、現時点で文字鏡コードをサポートし4059ている製品は、エーアイ・ネットの『今6079

昔文字鏡』のみである。ただし、各文字8094に活動を凍結し、その WWW サイト

鏡番号に対応する字形に関しては、ISO/IEC 10036 のグリフ登録サイト [7] で閲

0102030405

06

0708

09

10111213141516171819

図 6 「Mojikyo M101」の 16 区 ( 文字鏡番号 000001 〜 000094）

覧 可 能 だ。ISO/IEC 10036 の グ リ フ 番
号 10000001 〜 10576000 が文字鏡番
号 000001 〜 576000 に対応しており、128 ドットの gif 画像が入手できる。

16 区

02030405

06

0708

09

101112131415

161718192039

このような状況において、文字鏡コー4059

ドで書かれたファイルが発掘された場

6079合、どうやってサルベージすればいい8094のか。残念ながら文字鏡フォントセン

01

01
19

図 7 「Mojikyo M102」の 16 区 ( 文字鏡番号 005641 〜 005734）

ターが、そのようなサルベージをおこなうソフトウェアを明確に禁止してきたた

16 区

め、現時点では全く妙案がない。化けて01
19

しまった一字一字に対して、その字の20
39

JIS X 0208 における区点番号を調べて、40
59

フォント名と共に文字鏡番号に変換 [8]6079

し、さらに 10000000 を加えて、ISO/8094

IEC 10036 のグリフ登録サイトから gifを入手 [9] するしかない。もし、フォン

01

02

03

04

05

06

0708

09

10

11

12

13

14

15

16

1718

19

図 8 「Mojikyo M103」の 16 区 ( 文字鏡番号 011281 〜 011374）

ト名がわからない場合は、とりあえず「Mojikyo M101」の文字鏡番号を計算し、そのE000 〜 FFFF に関しては Unicode と互換であるグリフ番号に順に 5640 を加えていって当該グリ（図 9）。ただし、ハングルにあたる領域（AC00

フを入手、というのを繰り返すことになる。こん〜 D7A3）に関しては、ハングルではなく独自のなのを手作業でおこなうのは、全く馬鹿げている

拡張漢字や変体仮名などを、勝手に割り当てるとしか言いようがないのだが、ソフトウェアを作形で設計された（図 10）。これに加え制定版では、成できない以上、どうしようもない。

JIS X 0213 の第 3・4 水準漢字のうち漏れていた漢字を、AAA1 〜 ABCF に追加している（図 11）。

▊ 住基コード

住基コードの仕様は一般には非公開となっており、現時点で唯一のフォントである「KAJO J 明朝」

住民基本台帳ネットワークにおける統一文字を購入して、文字コードを調べるしかない。ただ

コードとして、2001 年 2 月に検討版が作成され、し、2009 年 3 月発行の『汎用電子情報交換環境

2001 年 10 月に制定、2002 年 8 月より運用開整備プログラム成果報告書別冊』（日本規格協会）始された文字コードである。Unicode の基本多言には、住基コードの漢字部分が収録されており、語面（U+0000 〜 U+FFFF）を独自拡張した 2 バ

漢字に関しては一応の調べがつくようになった。

イトの文字コードであり、0000 〜 9FFF および

Journal of JAET vol.11 ● 79

特集2

陳腐化するデジタル資料
0123456789ABCD

Eている上に、住基コードの仕様を公開しFないという方針を堅持し続けているため、

4E0x

もはや誰からも救いの手を差しのべよう
4E1xがない、というのが現状である。

4E2x
4E3x

図9▊ おわりに

住基コードの 4E00 〜 4E3F

シフト GB、文字鏡コード、住基コー
0123456789ABCDEF

ド、の 3 つの文字コードについて概要を述べ、これらの文字コードがどのようAD0xにして「失われていった」のかを解説し

AD1xた。これらの文字コードに共通する特徴

AD2xは、特定のベンダやグループによってやAD3xやもすれば閉鎖的に使われており、標準化からは程遠い立場にあったことである。

図 10 住基コードの AD00 〜 AD3F

言い換えれば、標準化をおこたった文字
0123456789A

B

CD

E

コードは、いずれ「失われる」というこFとだろう。

AAAx

もし、読者諸氏が今現在、仕様が一般AABxに公開されていない文字コードを使ってAACxいるのなら、悪いことは言わない、さっAADx

さと別の文字コードに乗り換えるべきだ。
閉じた仕様の文字コードは、いずれ誰に図 11 住基コードの AAA1 〜 AADFもサポートできなくなるのだから。その点を最後に指摘して、本稿をしめくくることにする。

✿ 住基コードの崩壊
2008 年 12 月 に Tai Viet[10] が U+AA80 〜
U+AADF に収録されたことから、住基コードは急注速に崩壊が進んでいる。というのも、たとえば[1] 中華人民共和国の国家標準局が 1980 年に発布した漢U+AABE は「TAI VIET VOWEL AM」という非前字コード。94 × 94 の文字表の中に、非漢字 682 字、進文字なので、通常の Unicode 処理では直前の第 1 級漢字 3755 字、第 2 級漢字 3008 字、あわせて文字に重ねて表示される。この結果、住基コード7445 字を収録していた。現在は GB 18030 に、とっの AABE にあたる「𡈽」は、直前の文字と重なって表示されてしまう[11]のである。て代わられている。
[2] Microsoft の独自拡張シフト JIS。

今 後、Unicode の U+AAA1 〜 U+ABCF に 新 た[3] 高電社版のシフト GB である「CW コード」では、1な文字が追加されるたび、住基コードの崩壊が加〜 8 区の非漢字部分は GB 2312 ではなく JIS X 0208

速していくのは間違いない。本来、これらの独自である。すなわち、非漢字部分はシフト JIS で、漢字拡張漢字は、U+20000 〜 U+2FFFF の拡張漢字面部分だけが Unicode 対応シフト GB だと言える。

[12]にちゃんと収録するか、さもなくば IVSを使って見分けるべきなのだ。元々の設計が完全に誤っ

80 ● ṽሼᢥ₰ᖱႎ⯪ℂ⎇ⓥ

第 11 号[4] http://www5b.biglobe.ne.jp/~harigaya/chcnv.html[5] 『ChineseWriter』 の「CW-GB Mincho」 や「GB 中 国失われた文字コード（安岡）明朝」、『楽々中国語』の「OM 中国 GB 明朝」、ある[9] グ リ フ 番 号 10050001 の gif が http://10036ra.org/いは『NiHao2』の「NH 簡体宋」などのフォントを、retrieve.php?gid=10050001 で入手可能。

Microsoft Windows の「SimSun」に変換し、同時に文[10] 黒タイ語や白タイ語に用いられる文字。

字コード変換をおこなう。ゴシックなども同様。

[11] U+2123D に収録されている本物の「𡈽」を使えば、[6] http://www.mojikyo.org/

このような重なり表示の問題は発生しないが、住基コ[7] http://10036ra.org/glyph-index.html

ードでは U+10000 以降を使うことができない。

[8] 16 〜 45 区の場合は、区番号から 16 を引いて 94 倍

[12] Ideographic Variation Sequence。Unicode において複し、点番号を加える。48 〜 77 区の場合は、区番号数の字体を見分けるために付加する文字コード。たとから 18 を引いて 94 倍し、点番号を加える。さらに、

えば「 丈」と「 丈 」は、それぞれ「 U+4E08 U+E0100 」

フォント名の番号部分（「Mojikyo Mxxx」の xxx の部分）と「U+4E08 U+E0101」という IVS で見分けられる。

から 101 を引いて 5640 倍した値を加えれば、文字鏡番号が得られる。

Journal of JAET vol.11 ● 81