[VBA]IVS登録の異体字を常用漢字に置換したい(知識編)

IVSの定義

IVSとは

文字情報技術促進協議会:IVD/IVSとは
上記サイトが非常に参考にするので要約するような形になる。

デジタル上では原則、1文字につき1つの文字コードが割当てられる。
「辻(にしんにょう)」や「辻󠄀(いっしんにょう)」のような異体字は形は異なるが、文字の持つ意味は同じなのだから、割り当てる文字コードも同じでよいのではないか?という理念から異体字をグループ化することを考えた。

とは言え、同じ文字コードと割り当ててしまったらそれぞれの異体字の区別がつかなくて困ってしまう。そこで共通して割り当てられた文字コードと各異体字に割り振った連番で一意に区別しようというシステムをIVS(Ideographic Variation Sequence/Selector)と呼ぶ。

IVSに登録される文字セットはIVD(Ideographic Variation Database)というデータベース上に登録されている。
データベースといいつつ、実際にはUnicodeの公式ページを参照する形になる。

IVSにおける文字の表現

IVSでは文字をUCS (Universal Coded Character Set)、いわゆるUnicodeと、各グループ内での連番をVS(Variation Selector:字形選択子)の2つで構成される。

「辻」の場合

  • 辻󠄀(いっしんにょう)
    UCS :8FBB
    VS :U+E0100
  • 辻(にしんにょう)
    UCS :8FBB
    VS :U+E0101
  • 上記2点に含め辻の異体字は6種類存在する。(U+E0100 – U+E0105)

IVSの参照

UCSのコードを確認する

IVDに登録されている文字の全量は以下に格納されているテキストファイルに定義されている。
URL:https://www.unicode.org/ivd/data/2022-09-13/
対象ファイル: IVD_Collections.txt

IVSのグループ数は「15,107」。結構多い。

Variation Selectorの範囲を確認する

Variation Selectorは「14 SSP」という専用区画に定義されている(ひらがなや漢字などの文字コードとは重複しない)。ブロック名は「Variation Selectors Supplement」であり、取りうる範囲は「U+E0100..U+E01EF」の計240種

実態を「IVD_Collections.txt」で確認すると、一番文字種が多い「邉」でも「U+E0100 – U+E011F」の32種であり、240種は大分余裕を持たせていることになる。

フォントの形式を確認する

テキスト形式の場合、コードしか定義されていないため、各異体字の字体を確認することが出来ない。
字体を確認したい場合、以下のサイトが参考になる。

IVSに関する疑問点

IVSに登録されている全ての文字はVariation Selectorなしに表現できるか

例えば、辻はVariation Selectorなしの「8FBB」のみでも文字を表示することができる。
では、ほかの文字でも同様のことが言えるだろうか。
Adobe Japan1 IVS 異体字一覧のページを参照する限りでは、左端の文字がVariation Selectorなしで表示されているため
全ての文字はVariation Selectorなしのバージョンの文字が必ず用意されている(と思われる)

IVSはShift-JISでもサポートされているか

UCSとVariation Selectorのコード値が、どのサイトでもUnicodeで表現されていることから、おそらくはUnicode ≒ UTF8やUTF16でしか利用できないものと思われる。(それを明言しているサイトを確認したわけではない。)