最初から語る Big5-UAO

台湾ではBBS(日本で言うパソコン通信)が今でも根強い人気がある。

もちろん、BBSシステムのほとんどはUnicodeなど対応できず、Big5しか対応していない。(UTF-8などに変換しようとしても、たとえば2バイト文字をANSIカラーにした2色漢字はどう対処するかわからない。)

サブカルチャーの集まりともあるBBSには、同じサブカルチャーの漫画・アニメ・JPOPなどのテーマもよく討論されており、そのため古くからBBSユーザなどは外字集などの方式でとりあえず仮名を拡張していた。(仮名はBig5-Eten準拠)

その中、私が発案した「Unicode補完計画」というプロジェクトは、2001年から提供開始。

 

当時、UnicodeベースのWindows XPが普及し始め、いくつかの問題が次々と出てきた。

まずは、なぜか Arial Unicode MS の Unicode PUA にタイ語っぽいグリフがあり、外字集より優先なので、いくつかの仮名外字が無視され、意味不明の文字に表示されてしまい(「お」など)、日本語が読めにくくなっていた。

次に、Unicode にはちゃんと仮名文字がある。たとえば日本語ホームページなどの仮名はこういう「本物仮名」。一方、BBSなどを使うときに必要なのは外字集かなで、いわゆる「Big5仮名」。「同じ仮名なのになぜコピペして化けるんだ!」とか「同じ仮名なのに何で違うIMEが必要だ!」とか、これは相当ややこしく、専門外のパソコンユーザにとっては分かりにくかった。

なお、Unicode ベースの Windows XP では、中国語システムフォントのMingLiuなどでもにはちゃんど綺麗な仮名が作ってある。一方外字集の仮名は醜かった。

そこで私が考えたのが、直接Big5の仮名文字などをUnicodeの正確なかな文字にマッピングさせること(Windows XPのマッピングテーブルをいじる形で)、それは「Unicode補完計画 1.0」だった。実は台風の日に出かけることができなく、一日で作り上げたものだった。

 

公開して、意外と大ヒット。

 

とくにBBSでは大変便利だった。本来の外字集は、読むことがそんなに難しくなかったものの、入力は別IMEになったり、日本語ホームページからのコピペができず(化ける)、いちいち変換ソフトにかけるとか、入力し直しとかしかできなかった。「本物仮名」と「Big5仮名」を統一したところで、仮名のコピペなどが可能となり、入力もMS-IMEが使えるなど、メリットが多かった。

BBS以外も、当時まだ流行っていたMP3プレイヤーWinampやCD-R記録ソフトNEROなどがまだUnicodeに対応しておらず、日本語ファイル名の再生や記録に支障が多く、これである程度楽になった。

 

約1ヵ月後、さらに「Unicode補完計画1.5」を公開した。これは「片方向漢字対応」というもので、たとえば本来Big5のマッピングファイルでは、Unicodeの「来」がBig5にないので「?」にマップしましたが、これを「來」にマップされたものです。つまりUnicodeの「来」も「來」もBig5の「來」にマップさせました(Unicode互換漢字の逆パタン?)。おそらく文字コード専門家はこういうマップが大嫌いだろうと思うが、なぜこんいう変なものを作ったというと、「コピペが便利だから」だった。

1.0 は仮名のコピペができたものの、やっぱり漢字は相変わらず化ける。「来」のような漢字を対応するには、拡張文字セットを作るしかない。当時、私が悩んだ末、Big5の拡張セットを作らないほうがいいという結論をした。こうするほうが新しいBig5の亜種が増えず、情報の流通に支障が少なくて済むという判断だった。あえて繁体字にマッピングさせ、変なテーブルを作り上げた。

 

1年後、ソフトソフトの中国語パッチを活動している中文化連盟の witch 氏から連絡があり、私の同じやり方で、「中国海字集」のすべての文字をマッピングしたテーブルを作ったという話だった。

「中国海字集」というのは、DOS時代(倚天中文系統)に絶大の人気のある外字集で、日本語漢字のみならず、中国簡体字からいろんな絵文字まで、豊富な外字集で、Windows 95になっても中国海字集の TrueType バージョン外字ファイルもかなり流通されていた。(しかし2000年前後会社が解散し、著作権関係があやふやとなった。)

そしてやはりBBSなどでは、中国海字集を使う人も多かった(インストールしていない人にとっては文字化けだらけだが)。
witch氏が考えたのは、Unicodeの環境が普及と伴い、同じ文字が本物の文字と外字の二通りがあってまずいことだった。勢いで中国海字集をできるだけ実現したマッピングファイルを作り上げた。

中文化連盟の KiiAli 氏と witch 氏がこれを Big5-Extension に名づけ、中文化連盟から提供することになった。(Big5-Etenの仮名も含まれているので、これでUnicode補完計画がそのサブセットになった。)

 

新しい拡張セットを作ることは抵抗があるものの、2種のBig5テーブルパッチが流通されていることはまずいとの判断と、何より私自身も中国海字集の愛用者だったということで、お互い話した末、2つのプロジェクトを合流することを決意した。これは「Unicode補完計画 2.10」の誕生だった。そして正式にBig5の亜種となり、「Big5-UAO」という偉そうな(?)名前も付けた。

中国海字集との互換性を維持することにあたって、Unicodeとの不整合がいくつかあった。たとえば「浅」、日本語の横線3本の文字と中国の2本の文字はUnicodeでは包摂の対象であり、同じ文字ポイントだ。しかし中国海字集では2文字だった。できるかぎり中国海字集の文字コードをそのままキープするのが大原則なので、2文字とも1文字にマッピングする必要がある。そのため重複登録がいくつかある。一方、Unicodeにない文字(たとえば中国海字集の大量の絵文字)は泣き泣きあきらめるしかない。ゆえに少しながらあっちこっち使われていないコードもあった。

 

「拡張セットを作らない」という道徳の線(?)が切れたら、人の野心がむきだすもの。もうインストールしてない人との互換性を考えなくてもよくなった以上、ひとつでも欠ける文字があれば目障りになる。たとえば、中国海字集では包摂させていた「戶」「户」「戸」は、やっぱり日本語の「戸」がコピペされたら化ける。そこで「户」「戸」二文字追加決定。これで2.20、2.30、…のようにかなり早いスピードで更新してきた。

最新の 2.50 では、ShiftJISの全漢字・GB2312の全漢字、さらに当時のHKSCS-2001のBMP範囲内の漢字がすべて追加され、さらに2chのコピペに便利という理由で、半角カナや、顔文字などで多用の数学記号や半濁点 (゚∀゚) なども全部追加され、Big5のPUA範囲をギリギリまで使いきるようになった。

そのため「文字セットを読む限り、整列順が分かりにくい、ラテン文字や記号と漢字が混ぜて並べられている」という批判があってもおかしくない。「初に中国海字集ありき」が本当の原因だ。対応したい文字が大量あるものの、中国海字集との互換性を守るため、残りわずかの空白スペースを探し出し、不作為に埋めていくしかできなかった。

これで Big5-UAO の更新が終了した。

 

一方、Firefox が流行りはじめた。

本来、IE などでは、Windows のマッピングテーブルを参照していたため、Unicode補完計画をインストールしているユーザなら、IEのテーブルも Big5-UAO だった。これはメリットとデメリット両方あった。Windows XP の時代、大量のホームページはまだ Big5 コードで作られて、仮名もBig5仮名のままだった。外字集を入れてない限り、こういうBig5仮名のあるページは読めなかった。Unicode補完計画ユーザはこういうBig5仮名も読めるから便利な一方、書き込みするときに、やはりBig5-UAOコードで投稿され、規格外の文字が増え続ける悪影響もある。(インストールしていない人は、外字が&#xxx;の実体参照に変換するため流通しやすい。Unicode補完計画に対する批判はほとんどこの理由)

 

Firefox は Windows のマッピングテーブルを参照しなく、独自の Big5 テーブルを持っている。つまりUnicode補完計画がインストールしていても、Firefox の挙動が変わらない。これもメリットとメリットがあって、外字が増えないことがいいが、外字がどうしても読めないのがちょっと残念。そして一番厄介なのは、Firefox 1.5 の Big5 テーブルは台湾の唯一の公的テーブル:Big5-2003 だった。なぜ厄介だというと、使われていないから。2003 年にやっと制定され、Windows などは対応するそうにない。Big5-2003 には仮名があるものの、日本の漢字がない。Big5-UAOの外字が増えないのがメリットのようなが、やはり仮名はBig5仮名のままに投稿されるので結局同じだ。

 

ここで動いたのは Mozilla 開発活動に熱心の piaip 氏だった。 piaip 氏は Big5-UAO に莫大な影響をもたらした人である。この段階ではもう私は Big5-UAO に直接手をかけてなくなったので、主な活動は witch 氏がやっていた。 piaip と witch 氏の提携によって、また面白いプランを Mozilla に提案した。それは、Unicode補完計画 1.5 でおなじみのある「片方向マッピング」だった。こっちは逆方向で、Big5 の Big5-UAO 文字を本物の Unicode コードにマッピングさせ、一方 Unicode→Big5 のマッピングを Big5-CP950(つまり Windows 準拠)にした。これで、 Big5 ホームページなどの Big5-UAO 外字は Big5-UAO として解釈され普通に読める一方、投稿した文字は Big5-CP950 として変換され &#xxx;の実体参照に。外字が読めて作らない。これ以上いいアイデアがないとも言いたいぐらい。このマッピング方式がすぐ認められ正式に Firefox 2.0 からのデフォルトとなった。

piaip 氏の功績は、このテーブルのみならず、もっとも重要なのは pietty だ。 pietty というのは有名 telnet ソフト putty の piaip バージョンで、このソフトは、ソフトレベルで Big5-UAO を対応することになった。つまり Windows の Big5 テーブルをいじることなく、 pietty で BBS にログインしたら、Big5-UAO の文字が読めて使えること。この時期、Winamp や NERO などのソフトも次々と Unicode 準拠となり、BBS 以外に Big5-UAO 文字を使わなくても支障がないという状態となっていた。 pietty の登場によって、Unicode補完計画というOSハッカーのようなものをインストールせずに BBS にだけ Big5-UAO を使うことができるようになった。すばらしい。

pietty をはじめ、PCMAN などの BBS 専用リーダーソフトも次々と Big5-UAO に対応するし、いまや Big5-UAO 対応するのが BBS ソフトの最低条件と言っても過言ではない。実際、Android の LunaTerm や MoPTT、そして iOS の Nally など、スマホの BBS ソフトは最初から Big5-UAO に対応してるものが多いようだ。

そして今一番人気のある(というか唯一の)BBS「PTT」も、UTF-8 の Web バージョンでは、Big5-UAO 準拠で Big5 と Unicode のマッピングしている。

 

同時にUnicode補完計画のソフトウエアとしての役割が終わって、ホームページも閉まり、公開されなくなっている(フリーソフトサイトなどで流通されているが)。 Big5-UAO という文字コードだけが使われ続いている。

 

最近、さすがに Mozilla 側も Big5 の亜種の多さに憤慨し、使われていないものを減らすことを検討しているようだ。そのなか piaip らが作った片方向 Big5-UAO も検討の対象とされ、Big5 を Big5-HKSCS 一本に統一したらどうだという案が人気だったようだ。実際調べてみたら、10数年経って、ほとんどのホームページが UTF-8 に直され、Web 界隈では Big5-UAO のデータがかなり少なくなっている。一方、BBS の世界ではもう Big5-UAO なしでは使えないぐらい平行世界のような状態に化けている。ということは、Firefox から Big5-UAO がなくても影響が少ないとは言える。しかし台湾の人にとってはやっぱりデフォルトが Big5-HKSCS に差し替えられたら悲しい。

 

と思いつつ、私が知っている Big5-UAO の歴史全貌をここで書いてみた。

Big5-UAO は Perl や Ruby などのプログラミング言語の文字セットにも収録されている一方、特に中国語以外に資料が少なく、どういうものであるかなかなか海外に知られていないようだ。

そのためまず自分のできる日本語でなんとか書いてみました。台湾以外の人にも Big5-UAO の成り立ちや使用現状を理解していただけばと思います。

 

参考:

Social Comments

One thought on “最初から語る Big5-UAO”

Comments are closed.