Windows 10 の一部のアプリでテキストの一部が正方形で表示される理由

現象
特定のアプリを Windows 10 Desktop または Windows 10 Mobile で実行すると、一部の文字が、正方形や長方形、または中に点、疑問符、"x" を含む枠として表示されます。それに対し、同じアプリを以前のバージョンの Windows や Windows Phone で実行してもこの問題は発生しません。

通常、この問題は、中東またはアジアの言語 (アラビア語、中国語、ヒンディー語など) のテキストが関係します。Windows 10 Mobile では、この問題は東アジア言語 (中国語、日本語、韓国語) に関係している場合がほとんどです。Windows 10 Desktop では、この問題は、一般に、システムが構成されている言語以外の言語のテキストに関係し、多言語が表示される可能性のあるシナリオをサポートする特定の種類のアプリ (Web の閲覧、ソーシャル ネットワーク アプリのユーザー通知など) 内で発生します。
原因
Windows 10 では、フォントに影響を及ぼす重要な機能強化がいくつか行われました (詳細については、後で説明します)。このような変更の副作用として、以前のバージョンの Windows や Windows Phone 用に作成された既存のアプリのごく一部が影響を受ける可能性があります。
  • Windows Phone 8.1 に搭載されていたフォントの一部が Windows 10 Mobile に搭載されていません。
  • 以前はすべての Windows デスクトップ システムに搭載されていたフォントの一部がオプションのフォント パッケージに移されたため、Windows 10 のデスクトップ システムに存在しない可能性があります。

これらの変更については、以下に詳しく説明します。特定のアプリでは、これらの変更が原因で、多言語のあるテキストを表示したときに "正方形" が表示される現象が生じる可能性があります。

Windows 10 のすべてのエディションには、幅広い言語サポートを提供するフォントが用意されています。また、Windows プラットフォームには、任意の言語のテキストが枠ではなく判読可能なグリフで常に表示されるように設計されたフォント フォールバック メカニズムが搭載されています。ただし、アプリによっては、特定の Unicode 文字を表示するための特殊なフォントに直接依存している可能性があるため、Windows で提供されているフォント フォールバック メカニズムが使用されません。場合によっては、このようなアプリは、既定で Windows 10 の一部のシステムにしか存在しないフォントに直接依存していることもあります。アプリで使用するフォントがシステムに存在しないため、テキストの表示には他のフォントが代わりに使用されますが、表示対象の文字がそのフォントですべてサポートされているとは限らない場合があります。文字の表示にその文字をサポートしないフォントを使用すると、そのフォントの既定の "未定義" グリフが使用されます。ほとんどのフォントの "未定義" グリフは、長方形の枠かそれが変化した形で表示されます。

Windows 10 におけるフォントの重要な機能強化の概要

Windows 10 の高度で重要な目標は、Windows を、共通の OS コアと共有アプリ プラットフォーム、つまりユニバーサル Windows プラットフォーム (UWP) を中心にすべて作成されたさまざまなデバイスのカテゴリに対応するオペレーティング システムのファミリにすることでした。UWP により、アプリは一度記述してビルドするだけで、Hololens から Xbox や Surface Hub までの幅広いデバイスで実行できるようになります。この収束されたアプリ プラットフォームの 1 つの要件は、このようなデバイスのカテゴリ全体で共通するフォント セットを用意することです。過去のリリースでは、Windows Phone、Xbox One、Windows デスクトップ クライアントには異なるフォント セットが付属していました。Windows 10 では、Windows 10 のエディション、デバイスのカテゴリやフォーム ファクターを問わず、Windows 10 のすべてのデバイスに必ず存在する共通のフォント セットがあります。さらに、この共通のフォント セットでは、Unicode を包括的にサポートしているため、ディスク領域を少ししか必要としない小さなフォント セットで世界中の何千もの言語に対応しています。

UWP の共通のフォント セットについては、次の記事を参照してください。

https://msdn.microsoft.com/ja-jp/library/windows/apps/hh700394.aspx#recommended_fonts

Windows デスクトップ クライアントは、通常、記憶域の制約があまり厳しくないデバイスで使用されるため、より幅広いフォントに対応できます。ところが、Windows デスクトップは従来、記憶域容量が非常に大きいデバイスで使用されていたのに対して、近年では、記憶域がより限定された、低価格のタブレットなどの新しいフォーム ファクターが見られるようになりました。Windows 10 のもう 1 つの高度で重要な目標は、Windows デスクトップ クライアントの動作をこのような低価格のデバイスでもこれまで以上に快適にすることでした。

Windows でカバーされる言語が増加するにつれ、特定のシステムのユーザーが他の言語のフォントを実際に必要としているかどうかに関係なく、すべてのシステムでフォントがさらに増加しました。ところが、これにより、フォント ピッカー コントロールやダイアログには、特定のユーザーにあまり関係のない多くの選択肢が追加されました。たとえば、スペイン語のユーザーは、タイ語を使う可能性がなくても、多数のタイ語フォントから選択できるようになりました。さらに、これは、すべての Windows デスクトップ システムのサイズが数百 MB 拡大される原因にもなりました。Windows に必要なディスク領域を減らし、特定のユーザーにより関連性の高いフォントの選択肢が提供されるように、多くの Windows フォントがオプションのフォント機能に移行されました。

これらのオプションのフォント機能は、文字ごとに分類され、言語と関連付けられています。また、このような言語の関連付けに基づいて自動的にインストールされます。たとえば、"簡体字中国語補助フォント" 機能には、特に簡体字中国語で使用されるフォントが含まれています。Windows 10 の簡体字中国語バージョンがインストールされている場合は、このオプションのフォント機能が既にプレインストールされていることになります。Windows 10 の別の言語バージョンがインストールされていてもユーザーが簡体字中国語の入力方式を有効にする場合や、簡体字中国語を含むプロファイルが Microsoft アカウントに関連付けられていてそのプロファイルをデバイスに移動する場合は、簡体字中国語補助フォント機能が Windows Update を介して自動的にインストールされます。

システムで積極的に使用される言語のセットに一致するようにオプションのフォント パッケージをインストールすることで、提供されるフォントの選択肢の数と使用されるディスクのフットプリントとの間のバランスを最適に保つことができます。ただし、このようなオプションのフォント機能がインストールされていなくても、すべての Windows 10 デスクトップ システムには、UWP の共通フォントが搭載されているため、Windows では Unicode と多言語テキストが十分サポートされており、ユニバーサル Windows アプリでは、デスクトップ デバイスやその他のあらゆるフォーム ファクターでテキストが適切に表示されます。

Windows 10 Mobile におけるフォントの変更の詳細

限られた数のフォントを使用して収束された UWP のフォント セットを定義するために、Windows Phone 8.1 に含まれていた次のフォントが Windows 10 Mobile から除外されました。
  • Dengxian、Dengxian Bold
  • Estrangelo Edessa
  • Khmer UI、Khmer UI Bold
  • Lao UI、Lao UI Bold
  • Leelawadee、Leelawadee Bold
  • Lucida Sans Unicode
  • Microsoft MHei、Microsoft MHei Bold
  • Microsoft NeoGothic、Microsoft NeoGothic Bold
  • Microsoft Uighur
  • Segoe WP、Segoe WP Light、Segoe WP SemiLight、Segoe WP Semibold、Segoe WP Bold、Segoe WP Black
  • Segoe WP Emoji
  • Tahoma、Tahoma Bold
  • Urdu Typesetting、Urdu Typesetting Bold
  • Yu Gothic Bold


Windows Phone アプリが特定の Unicode 文字を表示するために上記のフォントのいずれかに直接依存していて、Windows で提供されているフォント フォールバック メカニズムを使用しない場合、結果として、文字は "正方形" のグリフとして表示されます。

Windows 10 Desktop におけるフォントの変更の詳細

既に説明したように、以前はすべての Windows デスクトップ クライアント システムに搭載されていた多くのフォントが、Windows 10 ではオプションのフォント機能に移行されました。

次の表に、オプションのフォント機能と代表的な言語の関連付けの一覧を示します。これらのパッケージへの移動対象として選ばれたフォントが示されています。これらのフォントは、以前のバージョンの Windows でシェル ユーザー インターフェイス フォントとして使用されていましたが、新しい Windows フォントに取って代わられました。

オプションのフォント パッケージ言語の関連付けオプションのパッケージに移行された主なフォント
アラビア文字追加フォントアラビア文字を使用する言語 (例: アラビア語、ペルシャ語、ウルドゥ語)。
バングラ文字追加フォントバングラ文字を使用する言語 (例: アッサム語、バングラ語)。Vrinda
カナダ先住民音節追加フォントカナダ先住民音節文字を使用する言語 (例: イヌクティトット語)。Euphemia
チェロキー語追加フォントチェロキー語。Plantagenet Cherokee
デーバナーガリー文字追加フォントデーバナーガリー文字を使用する言語 (例: ヒンディー語、コンカニ語、マラーティー語)。Mangal
エチオピア文字追加フォントエチオピア文字を使用する言語 (例: アムハラ語、ティグリニア語)。Nyala
グジャラート語追加フォントグジャラート語、グジャラート文字を使用するその他の言語。Shruti
グルムキー文字追加フォントパンジャーブ語、グルムキー文字を使用するその他の言語。Raavi
簡体字中国語補助フォント簡体字中国語
繁体字中国語補助フォント繁体字中国語MingLiU、MingLiU_HKSCS
ヘブライ語追加フォントヘブライ語
日本語補助フォント日本語メイリオ、Meiryo UI、MS ゴシック、MS 明朝
クメール語追加フォントカンボジア語、クメール文字を使用するその他の言語。DaunPenh、Khmer UI
カンナダ語追加フォントカンナダ語、カンナダ文字を使用するその他の言語。Tunga
韓国語補助フォント韓国語Batang、Dotum、Gulim
ラオス語追加フォントラオス語、ラオス文字を使用するその他の言語。DokChampa、Lao UI
マラヤーラム語追加フォントマラヤーラム語、マラヤーラム文字を使用するその他の言語。Karthika
オディア語追加フォントオディア語、オディア文字を使用するその他の言語。Kalinga
ヨーロッパ各国語追加フォント言語との自動的な関連付けはありません。なし (すべてのフォントが Windows 10 で初めて使用されます)。
シンハラ語追加フォントシンハラ語、シンハラ文字を使用するその他の言語。Iskoola Pota
シリア語追加フォントシリア文字を使用する言語。Estrangelo Edessa
タミール語追加フォントタミール語、タミール文字を使用するその他の言語。Latha
テルグ語追加フォントテルグ語、テルグ文字を使用するその他の言語。Gautami
タイ語補助フォントタイ語、タイ文字を使用するその他の言語。Leelawadee
アプリが特定の Unicode 文字を表示するためにこれらのフォントのいずれかに依存していて、Windows で提供されているフォント フォールバック メカニズムを使用しない場合や、そのフォントを含むフォント パッケージがシステムにインストールされていない場合 (通常、関連付けられている言語が有効になるようにシステム プロファイルとユーザー プロファイルが構成されていないことが原因)、結果として、文字は "正方形" のグリフとして表示されます。

Windows 10 ユーザー向けの推奨事項

Windows 10 Desktop で一部のアプリにこのような現象が発生した場合は、アプリ開発者にフィードバックを送り、Windows 10 向けにこれらのアプリを更新するように提案してください。更新されるまでの間は、アプリが正しく機能するために必要なオプションのフォント機能を 1 つ以上インストールすることもできます。これを行う手順を次に示します。

正しく表示されないテキストの言語を把握していて、その言語をよく使用する場合:

関係のある言語がわかっている場合は、その言語をユーザー プロファイルに追加すると、関連付けられているオプションのフォント機能が自動的にインストールされます (注: 予測入力やスペル チェックなど、言語に関連した他のオプション機能がインストールされる場合もあります)。
  • [スタート] メニューの [設定] を開きます。
  • [時刻と言語] を選択します。
  • [地域と言語] を選択します。
  • [言語の追加] を選択します。
  • 対象の言語を選択します。
言語の設定を変更せずにオプションのフォント機能を有効にする場合:

特定の言語がわからない場合や、正しく表示されないテキストの言語がわかっていてもその言語をユーザー プロファイルに追加することを望まない場合は、その言語を有効にせずにオプションのフォント機能をインストールすることができます。
  • [スタート] メニューの [設定] を開きます。
  • [システム] を選択します。
  • [アプリと機能] を選択します。
  • [オプション機能の管理] を選択します。
  • [機能の追加] を選択します。
  • 一覧からオプションのフォント機能を選択します。

説明した現象が一部の Windows Phone アプリで発生する場合は、アプリ開発者に連絡して、ここで提供されているガイダンスに従ってアプリを更新するように提案することをお勧めします。注: Windows 10 Mobile では、オプションのフォント機能はサポートされていません。

OEM およびシステム管理者向けの推奨事項

Windows 10 展開イメージの言語パックまたは地域と言語の設定を構成している場合は、展開イメージのサービスと管理 (DISM) ツールを使用して、イメージに追加する言語パックに関連付けられているオプションのフォント パッケージ (および言語に関連した他のオプション機能) を含めてください。オプションのフォント機能と関連する Windows 10 の言語パックの言語の詳細については、次の記事を参照してください。

https://msdn.microsoft.com/ja-jp/library/windows/hardware/mt171094%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

Windows 10 の言語パックと言語に関連したその他すべてのオプション機能の概要については、次の記事も参照してください。

https://msdn.microsoft.com/ja-jp/library/windows/hardware/dn898584(v=vs.85).aspx

このようなオプションのフォント機能の 1 つ以上からフォントが必要になることがわかっているシステム管理者は、関連した言語パックを展開イメージに含めていない場合でも、まだ DISM を使用して任意のフォント機能を展開イメージに追加できます。

開発者向けの推奨事項

Windows 10 Mobile から除外されたフォントのいずれかに依存している Windows Phone アプリがある場合またはオプションのフォント パッケージに移行されたフォントのいずれかに依存している Windows デスクトップ アプリがある場合に、Windows で提供されているフォント フォールバック メカニズムをアプリで使用しないと、そのアプリは Windows 10 におけるフォントの変更による影響を受ける可能性があります。影響を受ける可能性が最も高いアプリの種類とアプリのシナリオを次に示します。
  • フォント フォールバックを提供しない低レベル グラフィック API (DrawGlyphRun、ETO_GLYPH_INDEX を使用した ExtTextOut、ScriptTextOut など) を使用して複雑なレイアウトを実現するブラウザーなどのアプリ。
  • サードパーティ製のグラフィックス ライブラリを使用するゲームなどのアプリ。
  • アプリや Windows の表示言語以外の言語、またはユーザーが使用する他の言語を含むテキストが表示される可能性のあるアプリ シナリオ (Web 閲覧、他のユーザーが送信したテキスト メッセージや通知の受信など)。
説明した現象がアプリで発生する場合、特に上記のシナリオでは、アプリが依存しているフォントを確認する必要があります。Windows 10 のアプリでの使用が推奨されているフォントについては、次の記事を参照してください。

https://msdn.microsoft.com/ja-jp/library/windows/apps/hh700394.aspx#recommended_fonts

この記事に記載されているフォントは、すべての Windows 10 デバイスに存在することが保証されています。

アプリで DirectWrite を使用する場合は、DirectWrite に用意されているフォント フォールバック メカニズムの使用を検討することをお勧めします。低レベル API を使用していて、独自のフォント フォールバックを実装する場合でも、DirectWrite には、独自のカスタム マッピングで補完できる既定のマッピングを提供する API があります。主な API については、次の MSDN の記事を参照してください。

· IDWriteFontFallback: https://msdn.microsoft.com/ja-jp/library/windows/desktop/dn280450%28v=vs.85%29.aspx

· IDWriteFactory2::GetSystemFontFallback: https://msdn.microsoft.com/ja-jp/library/windows/desktop/dn280450%28v=vs.85%29.aspx

· IDWriteFontFallbackBuilder: https://msdn.microsoft.com/ja-jp/library/windows/desktop/dn280476(v=vs.85).aspx


プロパティ

文書番号:3083806 - 最終更新日: 08/07/2015 07:50:00 - リビジョン: 2.0

Windows 10

  • kbsurveynew KB3083806
フィードバック