2013年3月10日日曜日

Windows 8/7:ボタンの豆腐化

Segoe UI Symbolのことを調べていて、「Windows 8でアイコンが豆腐になる」という話を何度か見ました。

Windows8のシステム記号文字化け - OKWave

回答者の方が書いているようにMetroはボタンのアイコンにSegoe UI Symbolを使っています。それらのグリフを含まないフォントファイルに置き換えてしまったら、このように豆腐になるでしょう。試しにSegoe UI Symbolを別バージョンのファイルで上書きしてみると警告のメッセージが出るだけで、すんなりインストールできてしまいました。


ただし上の例のように人為的に置き換えたのではなく、サードパーティ製のアプリが勝手に置き換えたのではないかというケースもありました。

Unknown Characters or Vertical Rectangles are Showing in place of Metro Icons in Windows 8 Start Screen and Login Screen - Tweaking with Vishal

どういうアプリかわかりませんが7・8なら元々インストールされているフォントなので、XPやVista向けでそういうのがあるのかもしれません。

さて、こんなことが起きるのはWindows 8だけの話かと思っていたら7でもあることがわかりました。先日正式版がリリースされた7向けのIE10です。

IE10 shows square blocks on every dropdown menu and on on scroll bars - Microsoft Community

ここでおもしろいのはSegoe UI Symbolのバージョンが5.00だと起きるという点です。 Windows 7でKB2729094が適用されるとバージョンが5.01に上がるという話を前に書きました→ココ
うちは自動更新で適用されていたはずですが、適用されていないままの環境もあるんでしょうか。

5.00のフォントファイルを保存してあったので、5.01に上書きして上の例を再現してみました。 確かにIEのスクロールバーのボタンが豆腐になりました。

IE10 - Windows 7,Segoe UI Symbol 5.00

5.01だとちゃんと表示されます。

IE10 - Windows 7,Segoe UI Symbol 5.01

いろいろと見てみたら、ブラウザのスクロールバーだけではなくサイトのページ内でも同様のケースがあることに気づきました。下図は左からOutlook.com・Skydrive(Excel Web App)・MSDNで見たものです。

IE10 - Windows 7,Segoe UI Symbol 5.00

MSDNのはドロップダウンボタンが豆腐になっています。5.01なら大丈夫です。

IE10 - Windows 7,Segoe UI Symbol 5.01
字形から察するに、これらはSegoe UI Symbolの私用領域にあるグリフが使われているんじゃないでしょうか。

Segoe UI Symbol CSS - GitHub

5.00と5.01のCMapを比較すると、それらしきものが差分に含まれています。


スクロールバーの左右はU+E00E・E00F、上下はU+E010・E011なのかなと思いました。


ドロップダウンはU+E0A1でしょうか。


ちなみにFirefoxやChromeではなんの影響もありませんでした。

Firefox 20beta - Windows 7

Chrome 25 - Windows 7

IE10はアイコンの画像ではなくフォントのグリフを使うことで軽量化を図ってるんですかね。

0 件のコメント:

コメントを投稿