web-dev-qa-db-ja.com

一部のUnicodeフォントがWindows7 / Firefoxで機能しない

エジプトの象形文字を表示したい:

???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ????

これらはUnicode5.2の一部です。

TL; DR:

  • クリーンなWindows7またはWindows8にNotoフォントをインストールするVMは期待どおりに機能し、Firefoxには象形文字があります。
  • ローカルマシンにNotoフォントをインストールしても機能しません。特にフォントを呼び出さない限り、どのプログラムも階層を表示しません。
  • デスクトップ上のファイル名など、さまざまな回避策を試して、これらの文字を使用してIEをトリガーしましたが、うまくいきませんでした。

詳細:

Aegyptus fontGoogle Noto フォントをインストールしてみました。

その結果、新しいフォントがシステムに表示され(たとえば、MS Wordでテキストをフォーマットするために使用できます)、Webページで明示的に参照すると(つまり、font-familyを 'aegyptus'に設定することによって)それらは正しく表示されます:

enter image description here

問題は、Webページが使用するフォントを制御できないことです。また、Windowsまたはブラウザーが、グリフがフォントに含まれていないことを自動的に検出し、適切な一致を見つける必要があることを理解しています。

クリーンなVM(Windows 7/IE 9 Virtual Box VM from modern.ie)でこれをテストしたところ、notoとFirefoxをインストールすると、フォントが正常に機能することがわかりました。フォントをインストールした後、フォントを指定しなくてもFirefoxにグリフが自動的に表示されます。ただし、ローカルのベアメタルマシンでは機能しません。

私はチェックしました 私のWindows 7は突然Unicode記号の表示を停止しました これはChromeの問題を示唆しており、必要なUnicodeコードポイントを使用する文字を含むファイルをデスクトップに置くことをお勧めします。しかし、ファイル名に漢字のファイルとエジプト文字​​のファイルの両方を入れてみましたが、うまくいきませんでした。注:漢字が機能しなくなることはありません。動作していないのは他の文字範囲だけです。

いずれにせよ、私は見つけることができるすべてのスタートアッププログラムを無効にしてみて、そのうちの1つがこれを台無しにしていないかどうかを確認しましたが、何も役に立ちませんでした。私はChrome、Adobe Acrobat、および他のいくつかの可能な候補をアンインストールしましたが、役に立ちませんでした。

更新

役立つ回避策を1つ見つけましたが、より良い解決策が必要です。 「利用可能な場合はハードウェアアクセラレーションを使用する」をオフにしてFirefoxを再起動すると、フォントが表示されます。グラフィックカード(Intel HD4000)の最新のドライバーがあることを確認しましたが、役に立たないようです。 このバグレポート Mozillaでは、特定のカードにフォントレンダリングの問題があることを示唆していますが、記載されている回避策は私には影響しません。いずれにせよ、私のフォントは正常に見えますが、グリフの置換は起きていません。

ブラウザは、グリフがフォントにないことを自動的に検出し、適切な一致を見つける必要があります

残念ながら、OPに関するこの仮定は、Firefoxにのみ当てはまります。 Firefoxは、グリフごとのフォント置換を行うfontconfigを使用します。関連する文字が含まれている場合は、適切なフォントが使用されます。

IEとChromeを比較すると、IEは、スクリプトごとにより広範なフォールバックを提供し、フォントのUI設定を提供するという点で、わずかに優れていますが、エジプトの象形文字については説明していません。主に複雑なテキストレイアウトのコンポーネントであるUniscribe/DirectWriteのフォントフォールバックメカニズムについては、 このMSDN記事 で説明されています。

Chrome 最終的にスクリプトごとのフォントフォールバックをサポート 2012年に、ユーザーはそれらを微調整するために追加の拡張機能をインストールする必要があります—そのような拡張機能の1つは フォントの詳細設定 。ただし、Chromeを使用してすべてのサイト訪問者に拡張機能をインストールするように指示することは、完全には実現可能ではありません。

元の問題については、フォントの代替メカニズムの方向性を調査する必要があるかもしれません。おそらく、他の不正な動作のフォントがNotoフォントをオーバーライドし、実際にはサポートしていないのに、これらのグリフをサポートしていると主張しています。面倒な方法は、システム上の余分なフォントを削除し、原因が見つかるまでそれらを1つずつ再追加することです。

1
Abel Cheung