2014年11月17日月曜日

Chrome 38:囲み文字のグリフ置換

追加多言語面U+10000~U+1FFFFには、ニコニコのコメントで使いたくなるような絵文字や飾り文字がたくさんあります。しかし今のところ、Windows 8.1上のIEまたはFirefoxでSegoe UI Symbolかゴシックにある文字が表示できるだけのようです。
ChromeのPepperFlashはSegoe UI Symbolを表示しません(たぶん)。またWindows 7はIEでもSegoe UI Symbolを表示せず、7のゴシックはこの領域にグリフを持っていません。

ただ一部の文字について、Chrome上でおもしろい挙動が起きるのに気づきました。
下図は8.1のSegoe UI Symbolだけにある文字です。Chromeでは豆腐になります。


これに、以前「Lucida化」の話で使ったU+2501(というかLucida Sans Unicode)とU+0323を隣接させてみます。


Chromeの表示が豆腐ではなくなりました。と言っても、どう見てもただのArialの「(A)」と「A」です。どうもSegoe UI Symbolを表示しない代わりに、こうしてグリフを置換する文字があるようです。

下図は、何に使うのか丸囲みのCDという記号です。ChromeではただのArialの「CD」になりました。


U+1F12D - Segoe UI Symbol

Windows 7にはSegoe UI Symbolも含めてこれらの文字を持つフォントはありません。当然ながらIEでは豆腐になりますが、Chromeでは同じようにArialに置換されました。


なぜU+2501とU+0323がこのような挙動を起こすのかはわかりません。

今度は日本の記号です。下図の文字は8.1だとSegoe UI Symbolのほか、ゴシックなどにもあります。


IEではデフォルトがSegoe UI Symbolだと思われます。U+2501を隣接させるとなぜかゴシックに変わりました。一方、Chromeはいずれの状態でもゴシックを表示しているようです。

Windows 7では上の文字はSegoe UI Symbolにしかありません。IEもChromeも豆腐になります。


ただしChromeのコメント一覧を見ると、U+2501とU+0323が隣接したコメントでやはりグリフ置換が行われていました。下図の通りただの「得」と「可」が表示されました。

Chrome 38 - Windows 7
これもコメントの表示に反映されればいいんですが。なお似たような文字だからと言って必ずしも同じことが起きるわけではありませんでした。