Adobeの異体字セレクタのなぞ

最近異体字を使う必要があっていろいろ調べている。まず自分のような古い人間にとって異体字というのは外字であって各メーカーが勝手に使っているイメージだった(違ったらすまん)。しかし調べてみるとユニコードがとうとう異体字を認めたということに今更気づいた。UTF8というのは文字によって長さが違うというかなり扱いたくない感じになっているらしい。つまりアルファベットは1バイトだけど、漢字は2バイトの場合もあれば3バイトの場合もあるというような具合だ。どうやって処理しているのか知りたくもないが、幸い、賢い人が書いたライブラリなどがあるのでよくわからないまま処理できる。で、昔ユニコードができた当初に似た漢字を無理やりまとめていたのをUTF8ではきちんと登録できるようになっており、きちんとある漢字の異体字はこれとこれみたいに登録するようになっていた。しかもたくさんの異体字をどうやって選択するのかというのもAdobeのソフトは異体字セレクタというものがあって、候補文字を表示して選べるようになっているらしい。(自分のPCには入っていないので確認できないが)そこで、自分も異体字を書体に登録して異体字セレクタを使いたいと思ったのだ。

最初UTF8のIVSという仕組みにのっとって異体字を登録すればよいのだろうと思っていたがどうやらそうではないらしい。というのもIVSは異体字はどこかの機関が管理しておりIVSでいう異体字はあくまでユニコード上に登録が漏れてしまった字形ということらしく、例えば高と髙(はしご高)は自分的には異体字だが、IVSでは別文字コード割り当て済のためIVSに沿って異体字選択機能を作っても選択肢に出てこないことになる。もちろん自分専用で使う分にはIVSの仕組みを使って異体字として登録してしまえばよいのだが、Adobeの異体字セレクタはIVSを使っていないようで選択肢にでてこない。

いろいろ調べていくと、異体字にはIVSでの登録とaaltテーブルでの登録という2種類あるらしくAdobeの異体字セレクタはaaltテーブルを使用しているらしい。こちらはIVSと違って文字コード上の一貫性ではなく同じ文字の字形違いを登録できる。

ここで問題となるのは自分で異体字セレクタを作るにあたってである。今回の用途的にはIVSのほうがやりやすい。というのもIVSはベースの文字の後ろにセレクタ文字を付ける形になるので異体字を選択しているというのがわかりやすい。というか、元の文字列とセレクタ文字を別で覚えておけばどの文字が異体字選択中かがわかる。ところが異体字セレクタの場合は選択した後は文字を異体字の文字コードに入れ替えることになる。今回の用途では異体字を選択したのを覚えておいて後でわかるようにしたいのである。なにか良い方法は無い物か悩むのであった。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です