文字コード王国の興亡
「髙」が機械から出ない国の半世紀
「髙橋」さんと「高橋」さんが、いまもなお、同じ画面に並んで立てない国の話である。
本記事は、日本の文字コード規格の半世紀史を、史書のような語り口でたどった読み物です。年号・規格名・人物名・統計はすべて実在の文献・公的文書・報道に基づきますが、語り口にはフィクション的な誇張が混じります。笑いながらこの「誰も悪くないのに片付かない」国の自画像を眺めるための、短い旅にお付き合いください。
1978年、文字に番号が与えられた
1978年1月1日、日本の通商産業大臣は、ひとつの工業規格を制定した。
名を JIS C 6226-1978、通称「78JIS」という。
それまで、日本語の文字は紙の上にしか存在しない、ぼんやりとしたものだった。明治の活字、戦後の写植、ワープロのドットマトリクス。「漢字」とは、紙に乗ったときの形であり、誰もそれを「番号」として呼んだことはなかった。
78JIS は、その慣習を切断した。漢字に背番号を振ったのである。よく使う漢字 2,965 字を「第一水準」、それより使用頻度の低い漢字 3,384 字を「第二水準」、ひらがな・カタカナ・記号類 453 字を加えて、合計 6,802 字。これが、コンピュータが扱える日本語のすべて、と国家が宣言した。
問題は、最初の地図にあった。
人口約1億1千万人、世帯主の名字に第二水準にも入っていない漢字を持つ家庭——それは相応の規模で存在した。「髙」「﨑」「邊」「邉」「德」「靑」「祐」の異体字。彼らは、生まれた瞬間から、コンピュータの世界では別人になることが運命づけられた。
シフトJIS、密室で生まれる
1982 年、もうひとつの規格が生まれた。Shift_JIS(シフトJIS)である。
これはJISの公式規格ではなかった。アスキー、米マイクロソフト、三菱電機、米デジタルリサーチ、そしてアスキーとマイクロソフトの合弁会社の関連会社 MSA(Microsoftware Associates)の技術者たちが、CP/M-86 という当時のオペレーティングシステム上で漢字を扱うために考案した、いわば「業界標準」だった。
設計は巧妙だった。1バイトの ASCII(半角英数字)と 2バイトの漢字を、同じデータの中に混在させても判別できる仕組みを、わずか数か月で組み上げた。日本のパソコン市場が「文字化けの少ないOS」を持てたのは、間違いなくこの密室合意のおかげである。
しかし、密室は密室だった。
国際的な手続きを踏んでいない以上、Shift_JIS は世界の文字コード規格の系譜とは切り離された孤児として育った。インターネット時代に「日本のメールやウェブだけがおかしな文字化けを起こす」現象は、この出生の秘密に由来している。
1983年、同じコードで違う文字が出てくる事件
翌1983年、JISは78JISを改訂した。JIS C 6226-1983、通称「83JIS」。
このとき、日本の文字コードに、ひとつの傷が刻まれる。
22文字が、コードを入れ替えられた。約250字が、字形を変えられた。たとえば、有名な事例として、「鷗」(森鷗外の鷗)が、同じコード位置のまま「鴎」(区+鳥)に置き換えられた。
つまり、5年前のフロッピーディスクに保存した「鷗外」が、新しいパソコンに差すと「鴎外」と表示されるようになった。データは1ビットも変わっていない。変わったのは、規格の解釈だった。
これは、文字コードが「ただの番号付けではない」ことを、日本社会が初めて知った事件である。番号と文字の対応は、ある日、上から書き換えられる。書き換えられた瞬間、過去の文書が、知らないうちに別の文書になる。
Unicode という巨人、海の向こうから来る
1980年代末、アメリカ西海岸の研究者たちは、世界中の文字をひとつの符号空間に収める計画を始めていた。
Unicode(ユニコード)である。1987年頃、ゼロックスのジョー・ベッカー、リー・コリンズらが原型を提唱し、1991年1月に Unicode コンソーシアムが設立された。同年10月にラテン文字部分を含む Unicode 1.0 が公開され、1992年6月に漢字部分(Unicode 1.0.1)が追加された。
ここで日本に問題が突きつけられる。
Unicode は当初、16 ビットですべての文字を扱おうとしていた。2 の 16 乗は約 6.5 万。世界中の文字を入れるには、漢字を「日本・中国・韓国で同じ字は同じ番号」にする必要があった。
これが CJK 統合漢字(C=中国、J=日本、K=韓国)である。1993年5月、ISO/IEC 10646 が正式制定され、U+4E00 から始まるブロックに、20,902 字が割り当てられた。
日本の専門家からは強い反発があった。「日本の漢字を、中国の簡体字や韓国のハングル混じり文書と同列に扱うのか」。文化的アイデンティティと、技術的合理性が、わずか数百字の字形差をめぐって衝突した。
しかし、世界の趨勢は決していた。1990 年代後半、インターネットの普及とともに、Unicode は実質的な国際標準となる。日本は、自国規格 JIS X 0208 を抱えたまま、Unicode への片足だけを突っ込んだ。
第三水準、第四水準、そして「やっと『髙』が出る」
2000年1月20日、日本は応戦のように JIS X 0213 を制定する。
第一水準と第二水準だけだった JIS X 0208 に、第三水準 1,249 字、第四水準 2,436 字、非漢字 659 字を含む計 4,344 字を新規収録した(2004 年の改訂で 10 字を追加し、規格全体は 1万1,233 字となる)。「髙」「﨑」「邉」「德」など、人名で長年苦しめられてきた異体字の多くが、ようやく規格に組み入れられた。
ところが、規格に入った文字が、すぐに使えるわけではない。
JIS X 0213 を完全にサポートしたフォントとシステムが市場に普及するまで、さらに数年を要する。実装は規格を追いかけ、ユーザーは実装を追いかけ、行政システムは予算サイクルを追いかける。「髙」が画面に出る日は、規格制定からまた遠かった。
同年12月8日、もうひとつ重要な出来事があった。文部大臣の諮問機関だった 国語審議会 が、「表外漢字字体表」を答申したのである。常用漢字に含まれない漢字 1,022 字について、「印刷の世界で標準とすべき字体」を国が示した。
国語政策と、文字コード規格と、フォント業界が、別々の方角から「同じ字を、同じ形で出そう」と歩み始めた瞬間だった。それが歩み終わるまで、もう一度、ねじれが起きる。
2004年、168字の字形が一夜にして変わった
2004年2月20日、JIS X 0213 が改訂された。JIS X 0213:2004、通称「JIS2004」。
このとき、168 字の例示字形が、表外漢字字体表に合わせて変更された。同時に 10 字が追加された。「辻」のしんにょうが点ひとつから点ふたつになり、「祇」の「氏」が「氏+点」になった。
これは、JIS83 のときと同じ事件の、二度目の発生である。
そして、この変更が一般ユーザーの画面に届くのは、3年後、2007 年 1 月のことだった。
Vista 騒動 ― 辻さんの一族が、ある朝「別人」になった
2007年1月30日、マイクロソフトは Windows Vista を発売する。
このOS には、JIS2004 準拠のフォント(メイリオ、MS明朝、MSゴシックの新版)が標準搭載されていた。約 122 字の既存漢字の字形が変わり、約 900 字の新しい漢字が表示できるようになった。
問題は、Windows XP 以前で作成された文書を Vista で開くと、見た目が変わったことだ。
「辻」のしんにょうの点が、ひとつだったのに、ふたつに増えていた。「祇園」の「祇」も、形が変わった。会社案内、商品カタログ、年賀状、すべての印刷物で、ある日突然、文字が別人になっていた。
Microsoft は、後に旧字形(JIS90)に対応した代替フォントを別途用意することになる。OS のバージョンが違えば、同じデータで違う字形が出る。1983 年に始まったこのねじれは、四半世紀後、Windows 上で再演されたのである。
文字情報基盤事業、6万字の和解計画
2010年前後から、日本政府は、長年の文字問題を一挙に解決しようと動いた。
経済産業省と内閣官房 IT 担当室が中心となり、独立行政法人 IPA(情報処理推進機構)の事業として、文字情報基盤事業が始まる。
成果として、2011 年 10 月に IPAmj 明朝フォントが公開された。収録字数は 5万 8,862 字。商用利用も無償。市販のオフィスソフトと同じ手順でインストールでき、これまで「外字」として個別作成されていた文字の多くが、共通のコードで扱えるようになった。
ようやく、「髙橋」さんは、IPA のフォントを入れたパソコンの上で、自分の名字を、自分の名字として表示してもらえるようになったのである。
行政事務標準文字、自治体システムが7万字に統一される
2021年9月1日、デジタル庁が発足した。
その重要施策のひとつが、自治体の基幹業務システムの標準化である。住民基本台帳、戸籍、税務、選挙、生活保護——日本中の自治体が、それぞれ独自に発注して作ってきたシステムを、共通の仕様に揃える計画だった。
そこで、文字の問題が再び中心に来た。各自治体が作った独自外字をどう扱うか。
デジタル庁の答えは、「行政事務標準文字」(MJ+)である。文字情報基盤の約 6 万字に、自治体業務で必要な文字を加え、約 7 万字の文字セットを国が定義し、すべての自治体システムに導入する。
導入対象は、児童手当、子育て支援、住民基本台帳、戸籍の附票、印鑑登録、選挙人名簿、固定資産税、個人住民税、軽自動車税、戸籍、就学、健康管理、児童扶養手当、生活保護、障害者福祉などを含む、20 業務である。
1978 年に 6,802 字で始まった日本の文字コードは、約半世紀をかけて、約 10 倍の 7 万字まで拡張された。「髙橋」さんの「髙」は、ようやく国の基幹システムに、確実に席を持つことになった。
ただし、この標準化は、いまも進行中である。各自治体が抱える独自外字を、ひとつずつ標準文字と照合(同定)する作業は、何万、何十万という単位で続いている。
王国の年代記
誰も「髙」を間違えなかった
1978 年から 2025 年まで、47 年が過ぎた。
通商産業省は経済産業省になり、国語審議会は文化審議会国語分科会となり、ワープロは絶滅し、紙の住民票は QR コード付き PDF に変わった。だが、「髙橋」さんの名字は、いまも、コンビニの住民票発行機で、ときどき「高橋」と表示される。
これは誰のせいなのか、と問いたくなる。
JIS の最初の規格を作った委員会のせいか。Shift_JIS を密室で決めた商社の技術者のせいか。Unicode で日本字を中国字と統合させた人々のせいか。Vista でフォントを切り替えたマイクロソフトのせいか。あるいは、自治体ごとに独自外字を抱えてきた、市役所の名簿担当者のせいか。
おそらく、全員ではないし、誰でもない。
それぞれの時代に、それぞれの人々が、自分の手元で「最善」と思った決断をした。1978 年の 6,802 字は、当時のメモリ容量と印刷技術の制約のもとで、ぎりぎりの選択だった。Shift_JIS は、CP/M-86 で漢字を表示するための、急場の発明だった。Unicode の漢字統合は、世界中の文字をひとつの空間に納めるための、避けがたい妥協だった。Vista のフォント切替は、国の字体方針に技術が追いつくための、遅れた応答だった。
それぞれが正しかった、それぞれの場所で。にもかかわらず、合計すると、半世紀近くを経ても「髙橋」さんは、まだ完全には自分の名字に再会できていない。これが、調整問題というものの本質である。誰も悪くないのに、全体は最適ではない。誰も間違えなかったのに、全員が小さな違和感のなかで暮らしている。
文字コードの歴史は、そういう国の自画像である。