特定の条件により、Windows 10 で文字化けが発生する

現象
Windows 10 で、同じフォント名のフォントが同時にインストールされている場合に GDIPlus を使用した文字列の描画で、異なる文字が描画される現象 (文字化け) が発生することがあります。
原因
詳細は現在調査中ですが、以下のような条件で現象が発生することが確認されています。

・異なるファイル名のフォント ファイルによって、同じフォント名のフォントがインストールされている。
・上記のそれぞれのフォントにおいて、同じグリフ ID に、別のグリフが割り当てられている。
・上記のフォント名を指定し、GDIPlus の Graphics.Drawstring 関数で文字列の描画を行っている。

確認されている状況として、Windows 10 日本語版に Office 2007 日本語版をインストールした際、Windows 10 日本語版に標準でインストールされている msmincho.ttc のほかに、Office 2007 日本語版によって MSMINCHO.TTF がインストールされ、上記のような状況となります。
このとき、Windows 10 の GDIPlus を使用し Graphics.Drawstring 関数でMS 明朝の文字列を描画すると、文字化けが発生します。
回避策
同じフォント名のフォントがインストールされている場合、一方のフォントをアンインストールします。
Windows 10 の日本語補助フォントに含まれるフォントが二重にインストールされている場合、日本語補助フォントをいったんアンインストールした上で該当のフォントをアンインストールし、改めて日本語補助フォントをインストールします。

手順 :
※各作業には管理者権限が必要です。管理者ユーザーでサインインしてください。
  1. 日本語補助フォントをアンインストールします。
    1-1. スタート ボタンを右クリックし、または長押し (タッチ操作の場合) で表示されるメニューから [コマンド プロンプト (管理者)(A)] を選択します。
          Command Prompt (Admin)

    1-2. ユーザー アカウント制御の画面が表示されたら、[はい(Y)] をタップまたはクリックします。
          UAC
         ※コマンド プロンプトが起動します。
           コマンド プロンプトのタイトルが、"管理者: コマンド プロンプト" になっていることを確認します。
           Command Prompt (Admin)
    1-3. 次のコマンドを実行し、インストールされているパッケージの一覧を取得します。
         DISM.exe /Online /Get-Packages

    1-4. 表示されたパッケージの一覧から、次の名称が含まれるパッケージ ID を探します。
         Microsoft-Windows-LanguageFeatures-Fonts-Jpan-Package
              Packages

    1-5. 次のコマンドを実行し、日本語補助フォントをアンインストールします。
         DISM.exe /Online /Remove-Package /PackageName:Microsoft-Windows-LanguageFeatures-Fonts-Jpan-Package~31bf3856ad364e35~amd64~~10.0.10586.0
         ※ PakageName には、上記 1-4. で確認したパッケージ ID を指定します。
           マウスやタッチ操作等で範囲を選択し、コピー&ペーストすることもできます。
           範囲を選択し、右クリック、または Ctrl + C などでコピーします。
            Select

            Input
            右クリック、または Ctrl + V などでペーストします。
             Paste

    1-6. 操作の完了後、コンピューターの再起動を要求される場合、Y を押下し、再起動します。
          Reboot

  2. 対象のフォントをアンインストールします。
    ここでは、MS 明朝 (MSMINCHO.TTF) を例にします。
    2-1. エクスプローラーで、C:\Windows\Fonts を開きます。
    2-2. [MS 明朝 標準] を選択し、[削除] をタップまたはクリックします。
          Fonts

    2-3. フォントの削除の画面が表示されたら、[はい(Y)] をタップまたはクリックします。
          Delete

※フォントのアンインストールが失敗する場合
- フォントを直接削除する方法
--------------------------------------------------------------
上記の手順でフォントのアンインストールが失敗する場合、対象のフォントを直接削除します。
フォントを直接削除するには、レジストリの情報、およびフォントファイルの実体を削除します。

手順 :
※各作業には管理者権限が必要です。管理者ユーザーでサインインしてください。

  1. レジストリの情報を削除します。
    1-1. キーボードの Windows キーを押下したまま R キーを押下し、"ファイル名を指定して実行" を開きます。
         ※スタート ボタンの右クリック、または長押し (タッチ操作の場合) で表示されるメニューから選択することもできます。
         Run
    1-2. "名前 (O):" 欄に "regedit.exe" と入力し、[OK] をクリック、またはタップします。
         Open
    1-3. "ユーザー アカウント制御" の画面が表示されたら、[はい (Y)] をタップ、またはクリックします。
         UAC
    1-4. レジストリ エディターの左ペインのツリーから、下記のキーを展開し、選択します。
         [コンピューター]
           - [HKEY_LOCAL_MACHINE]
               - [SOFTWARE]
                   - [Microsoft]
                       - [Windows NT]
                           - [CurrentVersion]
                               - [Fonts]
         Regedit Fonts
    1-5. レジストリ エディターの右ペインの一覧画面から、削除対象のフォントを確認します。
         英語名の場合や、日本語名の場合があります。また、複数のフォント名が含まれる場合もあります。

         例 1 既定の値 : MS UI Gothic の場合、既定では下記のレジストリ値があります。
         名前 : MS Gothic & MS UI Gothic & MS PGothic (TrueType)
         種類 : REG_SZ
         データ : msgothic.ttc
         ※データはフォント ファイル名です。
           パスがなく、ファイル名のみの場合、既定のフォント フォルダーにインストールされています。

         例 2 異なるフォント ファイルがインストールされている場合 : MS UI Gothic が含まれる別のフォントファイルがインストールされていることがあります。
         名前 : MS ゴシック & MS Pゴシック & MS UI Gothic (TrueType)
         種類 : REG_SZ
         データ : msgothic_0.ttc
         ※フォント ファイル名は不定です。
         Regedit MS Gothic
    1-6. 削除対象のフォントを選択の上、[編集 (E)] メニューから [削除 (D)] を選択します。
         Regedit Del
    1-7. "値の削除の確認" 画面が表示されたら、[はい (Y)] をクリックまたはタップし、続行します。
         Regedit Del Prompt
         ※右ペインの一覧画面から、対象のレジストリ値が削除されたことを確認します。
    1-8. レジストリ エディターを終了し、コンピューターを再起動します。

  2. コンピューターの再起動後、フォント ファイルの実体を削除します。
    2-1. スタート ボタンを右クリック、または長押し (タッチ操作の場合) で表示されるメニューから [コマンド プロンプト (管理者)(A)] を選択します。
         Command Prompt (Admin)
    2-2. "ユーザー アカウント制御" の画面が表示されたら、[はい (Y)] をタップまたはクリックします。
         UAC
         ※コマンド プロンプトが起動します。
           コマンド プロンプトのタイトルが、"管理者: コマンド プロンプト" になっていることを確認します。
           Command Prompt (Admin)
    2-3. 次のコマンドを入力、実行し、現在のディレクトリを変更します。
         cd %windir%\Fonts
         ※プロンプトの表示が "C:\Windows\system32>" から "C:\Windows\Fonts>" に変更されることを確認します。
           Cmd CD
    2-4. 次のコマンドを入力、実行し、ファイルが存在することを確認します。
         dir "フォント ファイル名"
         ※フォント ファイル名は、1-5. で確認したレジストリのデータです。
          Cmd DIR
    2-5. 次のコマンドを入力、実行し、ファイルを削除します。
         del "フォント ファイル名"
         ※フォント ファイル名は、1-5. で確認したレジストリのデータです。
         ※削除が成功した場合、画面には何も表示されずにプロンプトに戻ります。
           Cmd DEL
    2-6. 次のコマンドを入力、実行し、ファイルが存在しないことを確認します。
         dir "フォント ファイル名"
         ※フォント ファイル名は、1-5. で確認したレジストリのデータです。
           Cmd DIR
    2-7. コマンド プロンプトを終了します。

  3. 日本語補助フォントをインストールします。
    3-1. スタート メニューから、[設定] を開きます。
          Start Menu

    3-2. 設定の一覧から [システム] を開きます。
          Settings

    3-3. リストから [アプリと機能] を選択し、[オプション機能の管理] を開きます。
          Apps & Features

    3-4. オプション機能の管理で、[機能の追加] を開きます。
          Optional features

    3-5. 機能の一覧から、[日本語補助フォント] を選択し、[インストール] をタップまたはクリックします。
          Add a feature

    3-6. オプション機能の管理に戻り、日本語補助フォントがインストールされていることを確認します。
          Supplemental Fonts

    3-7. インストールが完了したら、コンピューターを再起動します。
状況
この問題について、詳細を調査中です。
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:3144536 - 最終更新日: 03/30/2016 16:18:00 - リビジョン: 6.0

Windows 10, Windows 10 Version 1511

  • KB3144536
フィードバック