レガシ CRT を使用するアプリが特定の地域設定で正しく動作しない

適用先
Windows 10, version 1809, all editions

概要

レガシ C ランタイム ライブラリを使用する一部のアプリは、リージョン設定でコード ページがサポートされていない場合に正しく動作しません

背景

Windows 1809 では、アプリケーションがロケールのコード ページを要求するときに、UTF-8 がそれらのロケールの言語データを包含するため、CP_ACPではなくCP_UTF8を返す変更がありました。 ただし、この変更により、一部のレガシ CRT を含め、コードページの概念が正しく使用されていないアプリが中断されます。

これに対処するために、CP_UTF8ではなく、CP_ACPを返すという古い動作に戻しています。

回避策

  • ユーザーは、設定->Region->RegionalFormat が英語に設定されている "(米国)" で地域を一時的に "英語 (米国)" に変更できます (コードページを使用して任意の場所を選択)
  • [Beta: Use Unicode UTF8 for worldwide language support]\(グローバル言語のサポートに Unicode UTF8 を使用する\) チェック ボックスがオフになっていることを確認します。

[ > 設定] > [時刻 & 言語] > [日付、時刻、& 地域の書式設定] > [追加の日付、時刻、& 地域の設定] > [地域] > [管理] > [システム ロケールの変更] を開始します。