【Windows】古いアプリケーションで日本語が「???」になる時の「非Unicodeプログラム」設定手順

【Windows】古いアプリケーションで日本語が「???」になる時の「非Unicodeプログラム」設定手順
🛡️ 超解決

古い業務アプリケーションで日本語が「???」と表示され、業務に支障が出ているビジネスマンは多いでしょう。これは、Windowsのシステム言語設定とアプリケーションの文字コードが合致しないことが主な原因です。

特に、Unicodeに対応していない旧式のプログラムでは、このような文字化けが発生しやすくなります。

この記事では、「非Unicodeプログラムの言語」設定を変更し、古いアプリケーションで日本語が正しく表示されるようにする手順を詳細に解説します。

【要点】古いアプリの日本語文字化けを解消する設定

  • Unicode対応ではないプログラムの言語設定: 古いアプリケーションが使用する文字コードを日本語に合わせ、文字化けを修正します。
  • システムの再起動: 設定変更をシステム全体に適用し、変更内容を有効にします。
  • アプリケーションの互換モード: 特定のアプリケーションが動作しない場合に、古いWindows環境を模倣して実行します。

ADVERTISEMENT

古いアプリケーションで日本語が文字化けする根本的な原因

古いアプリケーションで日本語が「???」と文字化けする現象は、主に文字コードの不一致によって発生します。

現代のWindowsは、世界中の文字を統一的に扱うための文字コードであるUnicodeを標準で利用しています。しかし、開発時期の古いアプリケーションの中には、Unicodeではなく、Shift_JISなどの特定の地域で使われていた文字コードに依存しているものが多く存在します。

Windowsは、このようなUnicodeに対応していないプログラムに対して「Unicode対応ではないプログラムの言語」、別名「システムロケール」と呼ばれる設定で、既定の文字コードを提供します。このシステムロケールがアプリケーションが想定する文字コードと異なっている場合、文字が正しく解釈されず、「???」といった表示になります。

「???」と表示される仕組み

アプリケーションが特定の文字コードでテキストを表示しようとする際、Windowsがその文字コードを認識できない、または対応する文字グリフがない場合に、「???」や□などの代替文字が表示されます。これは、システムがその文字を表現できないことを示す一般的な挙動です。

「非Unicodeプログラムの言語」を日本語に設定する手順

ここでは、Windows 11を基準に、古いアプリケーションの日本語文字化けを解消するための「Unicode対応ではないプログラムの言語」設定手順を解説します。

  1. 設定を開く
    スタートボタンを右クリックし、表示されるメニューから「設定」を選択します。
  2. 言語と地域の設定へ進む
    「設定」ウィンドウの左側メニューで「時刻と言語」をクリックし、次に右側の「言語と地域」を選択します。
  3. 管理用の言語設定を開く
    「言語と地域」画面を下にスクロールし、「関連設定」の項目にある「管理用の言語設定」をクリックします。
    Windows 10の場合も同様に「設定」から「時刻と言語」→「言語」へ進み、「関連設定」にある「管理用の言語設定」をクリックします。
  4. 管理タブを選択する
    「地域」という名前のダイアログボックスが表示されるので、上部にある「管理」タブをクリックして選択します。
  5. システムロケールの変更を開始する
    「Unicode対応ではないプログラムの言語」というセクションを見つけ、「システムロケールの変更」ボタンをクリックします。
  6. 現在のシステムロケールを設定する
    「地域の設定」ダイアログボックスが開きます。「現在のシステムロケール」のドロップダウンリストをクリックし、「日本語 日本」を選択します。
  7. UTF-8オプションの確認
    「ベータ:ワールドワイド言語サポートのためにUnicode UTF-8を使用」というチェックボックスがある場合、このチェックボックスはオフになっていることを確認します。通常、古いアプリケーションの文字化けを解消するには、このオプションをオフにする必要があります。
  8. 設定を適用し再起動する
    「OK」ボタンをクリックし、さらに「地域」ダイアログボックスの「OK」ボタンをクリックします。設定変更を有効にするために、Windowsの再起動を求めるメッセージが表示されるので、「今すぐ再起動」をクリックしてPCを再起動します。

設定変更後も直らない場合の追加確認ポイント

上記の手順を実行しても、古いアプリケーションの日本語表示が改善されない場合があります。その際には、以下の点を確認してください。

アプリケーションが使用するフォントの問題

アプリケーションが特定のフォントを使用しており、そのフォントが日本語文字に対応していない可能性があります。アプリケーション内部にフォント設定がある場合は、MS UI GothicやYu Gothicなどの日本語対応フォントに変更できないか確認してください。フォントの変更ができない場合は、Windowsにインストールされているフォント自体が破損している可能性も考慮します。

アプリケーションの互換モード設定

非常に古いアプリケーションの場合、現在のWindows環境では正常に動作しないことがあります。アプリケーションを互換モードで実行することで、問題が解決する場合があります。

  1. アプリケーションのプロパティを開く
    文字化けするアプリケーションの実行ファイルまたはショートカットを右クリックし、「プロパティ」を選択します。
  2. 互換性タブへ移動する
    「プロパティ」ダイアログボックスで「互換性」タブをクリックします。
  3. 互換モードを設定する
    「互換モード」セクションの「互換モードでこのプログラムを実行する」にチェックを入れ、ドロップダウンリストからアプリケーションが動作していたと思われる古いWindowsのバージョンを選択します。例えば、「Windows XP Service Pack 3」などを試してみてください。
  4. 設定を適用する
    「適用」ボタンをクリックし、次に「OK」ボタンをクリックして設定を保存します。

既に文字化けして保存されたファイルの問題

設定変更を行う前に、既に文字化けした状態でデータファイルが保存されている場合、この設定変更によってそのファイルの内容が元に戻ることはありません。設定変更は、今後アプリケーションが新たに表示・保存するテキストに適用されます。既に文字化けしたファイルは、別の方法で修正するか、元の正しいデータがあればそちらを再利用する必要があります。

「ベータ:ワールドワイド言語サポートのためにUnicode UTF-8を使用」オプションの影響

「Unicode対応ではないプログラムの言語」設定時に「ベータ:ワールドワイド言語サポートのためにUnicode UTF-8を使用」というオプションが表示されることがあります。このオプションを有効にすると、一部の新しいアプリケーションでは文字表示が改善されることがありますが、今回のように古いアプリケーションで文字化けが発生している場合は、かえって問題が悪化する可能性があります。基本的には、このオプションはオフのままにしてください。

ADVERTISEMENT

Windows 11とWindows 10の管理用言語設定の違い

項目 Windows 11 Windows 10
設定の入り口 スタートボタン右クリック → 設定 → 時刻と言語 → 言語と地域 スタートボタン右クリック → 設定 → 時刻と言語 → 言語
管理用言語設定の場所 言語と地域の「関連設定」内 言語の「関連設定」内
UIの名称 「言語と地域」 「言語」
操作手順の類似性 ほとんど同じ手順で設定できる ほとんど同じ手順で設定できる

この記事で解説した手順により、古いアプリケーションで発生していた日本語の文字化け問題が解決できたことでしょう。

「Unicode対応ではないプログラムの言語」設定は、システムが非Unicodeアプリケーションに提供する既定の言語環境を調整する重要な機能です。

もし問題が再発したり、別のアプリケーションで同様の問題が発生した場合は、今回設定した「日本語 日本」が維持されているか確認してみてください。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。