既にいくつかの記事で報道されているように,Windows Vistaでは,JIS X 0213:2004(JIS2004)と呼ぶ規格に対応し,利用できる文字数が増えるとともに一部の文字の形が変わる。そのことで,Windows Vistaを使うと文字に関して何か問題を起こすかのように思われている節があるようだ。

 私が書いた記事でも,「これらの文字を使ってWindows Vistaで作った文書を,JIS2004に対応していない既存のWindowsで開くと,『・』や『■』などで表示される恐れがある」と記述しており,読者に対して余計な不安を与えてしまったかもしれない。また,「追加文字を使った文書を保存するときは,エンコーディングをUnicodeにする必要がある」との記述は,Windows Vistaだけのことかと誤解を与えてしまったかもしれない。これは,後で説明するようにWindows 98/NT 4.0 SP4以降のWindowsに共通のことであり,現在でも遭遇する事象である。

 Windows Vistaの文字に関して必要以上に不安をあおってしまった原因は,(1)一部の文字の形が変わったこと(フォントの問題),(2)追加された文字があること(文字セットの問題),(3)追加された文字はUnicodeでしか扱えないこと(エンコーディングの問題),の3つが混同されていることだろう。これら3つの事柄は,切り離して考える必要がある。そこで,ここではこれら3つの問題を切り離して考えてみる。実際にはWindows Vistaを使っても,文字に関して問題になることは少ないはずだ。

Windows XP/2003でも新字体を利用可能

 まずフォントに関して見てみよう。マイクロソフトは,「JIS2004」で追加された新しい文字の形がデフォルトになっているフォント(MS明朝/MS P明朝とMSゴシック/MS Pゴシック/MS UI Gothic)を,Windows XPおよびWindows Server 2003向けに提供する予定である。JIS2004に対応したフォントをWindows XP/2003にインストールすれば,標準でWindows Vistaと同じJIS2004の字体で表示/印刷される。例えば,「逗」は2点しんにょうになる。ちなみにWindows Vistaには,日本語ClearTypeフォント「メイリオ」も新たに提供されるが,こちらはWindows XP/2003向けには提供されない。

 Windows Vistaが標準で備えるJIS2004対応フォント,およびWindows XP/2003向けに提供されるJIS2004対応フォントは,従来のJIS90に対応した字体も備えている。JIS2004とJIS90のどちらの字体を使うかは,OpenTypeのFeature Tagを利用して切り替えられる。1つのキャラクタ・コードに対して2つのグリフが用意されているわけだ。JIS2004フォントを利用する環境でも,この仕組みを利用することで,JIS90の字体を使える。例えば,.NET Framework 3.0の描画エンジンであるWPF(Windows Presentation Foundation)がFeature Tagに対応している。.NET Framework 3.0対応アプリケーションならば,WPFのユーザー・インターフェース記述言語であるXAMLで,タグを指定するだけで,字体を簡単に切り替えられる(図1)。なお,上記JIS2004対応フォントの中で,JIS90の字体に切り替えられる文字は122文字である。

図1●JIS2004フォントではJIS90の字体も切り替えて使える。Windows Presentation Foundation(WPF)を利用して表示したところ(画面上)。「葛」「辻」「捗」の異なる字体が1つのフォント(MSゴシック)で混在表示されていることが分かる。画面下は,そのソースであるXAMLファイルをメモ帳で開いたところ。2つの「葛」「辻」「捗」が同じ字体で表示されていることから,同じキャラクタ・コードであることが分かる
[画像のクリックで拡大表示]

 またマイクロソフトは,Windows Vista向けに,Windows XPなどと同じJIS90の字体がデフォルトになっているフォントを提供する。これをWindows Vistaにインストールすれば,字体は従来と同じだ。ただし,Windows Vista標準のJIS2004対応フォントがJIS90の字体も使えたのとは異なり,JIS2004の字体は使えない。

 以上のことをまとめると次のようになる。Windows XP/2003/Vistaが混在する環境で字体を統一したい場合,(1)JIS2004に統一する,(2)JIS90に統一する,の2つの選択肢がある。JIS2004で統一した場合は,OpenTypeのFeature TagによってJIS90の字体でも表示できる。もちろん市販のフォントを使えば,そのフォントのグリフで表示される。そのフォントの字体がJIS90対応であれば,例えば「逗」は1点しんにょうで表示される。

 一方,JIS90で統一した場合は,JIS90の字体のみが使えるようになる。ただし,JIS2004対応の市販フォントを使えば,JIS2004の字体で表示される。なお,どちらの場合でも,既存の文書に対して,例えば文字を置換するなどの編集作業は一切不要である。

追加文字は,フォントがあれば表示される

 次に,Windows Vistaで追加された文字の表示について見てみよう。追加された文字はWindows XP/2003でも,使用するフォントにグリフがあれば表示可能である。だが,Windows XP/2003に標準で付属するMS明朝やMSゴシックなどには,Windows Vistaで追加された文字のグリフは入っていない。そのため,「・」などで表示されることがある。

 ただし,日本語版Windows XP/2003をインストールすると,標準で台湾語,中国語,韓国語の言語パックもインストールされる。すなわち,台湾語,中国語,韓国語のフォントもインストールされる。Windowsの文字描画エンジンは,指定されたフォントにグリフがない文字を表示しようとした場合,別のフォントにその文字のグリフが入っていればそれを使って表示しようとする。これをフォント・リンク機能と呼ぶ。

 実際に,JIS2004で追加された「嘘」や「剥」の正字を含んだテキスト・ファイルを,Windows XPのメモ帳で開いた様子が図2である。フォントにはMSゴシックを指定しているにもかかわらず,これらの文字は明朝体で表示される(メモ帳では,文字単位で異なるフォントを指定できない)。Windowsは,MSゴシックにグリフがない文字については,台湾語フォントの「MingLiU」や中国語フォントの「SimSun」,韓国語フォントの「GulimChe」から,この順に探して取ってくる。これらのフォントが利用しているコード体系のUnicodeでは,日本語と台湾語,中国語,韓国語が1つの「スクリプト」として定義されており,同じ形の文字には同じキャラクタ・コードが割り当てられているから,このようなことが可能になる。なお,Unicodeのスクリプトとは,文字のカテゴリだと考えると分かりやすい。

図2●「叱」や「嘘」,「剥」の正字を含んだテキスト・ファイルを,Windows XPのメモ帳で開いた様子。「嘘」と「剥」の正字は別のフォントで表示されているのが分かる
[画像のクリックで拡大表示]

 以上をまとめると,Windows Vistaで追加された文字については,フォントにグリフがあれば表示できるし,なければ表示できない。だが表示できなくても,例えばUTF-8やUTF-16といったUnicodeのエンコーディング(文字コード体系)で文書を扱っている限り,文字情報が文書からなくなってしまうことはない。