10.4.1で「Unicode文字のマッピングがターゲットのマルチバイトコードページに存在しません」のエラーが表示されます
対象となる製品
- RAD Studio 10.4.1
- C++Builder 10.4.1
- Delphi 10.4.1
問題
新規でプロジェクトを作成、または既存のプロジェクトを開くと、「Unicode文字のマッピングがターゲットのマルチバイトコードページに存在しません」のエラーが表示され続けて終了もできません。
解説
このエラーは、保存されているレイアウトファイル(.dst)に ANSIエンコードのファイルがあるときに発生します。
レイアウトファイルは通常UTF-8エンコードで作成されるファイルですが、現在、次の手順でレイアウトファイルを更新した際に、ANSIエンコードのレイアウトファイルが作成されることがわかっています。
- 「ファイル|新規作成|Windows VCL アプリケーション」で新規にVCLアプリケーションを作成します。
- フォーム上に TButtonとTMemoを置きます。
- TButtonをダブルクリックして、たとえば次のようなコードを記載します。
Memo1.Lines.Add('押しました');
- コードエディタの下部に表示されているエンコードの種類がANSIであることを確認します
- 「ファイル|すべて保存」で保存します。保存時のファイル名は任意で構いません。
- 「表示|別の編集ウィンドウを開く」で、現在表示されているユニットを別のエディタ画面で開きます。
- 同様に、コードエディタの下部に表示されているエンコードの種類がANSIであることを確認します。
- 「表示|ディスクトップの配置|保存」で任意の名前を付けてレイアウトファイルを保存します。
解決
C:\Users\<Windows ユーザー名>\AppData\Roaming\Embarcadero\BDS\21.0 以下にある該当のレイアウトファイル(.dst)のエンコードを ANSIから UTF-8に変更します。 または、このフォルダ内にある、該当のレイアウトファイル(.dst)を削除します。
C:\Users\<Windows ユーザー名>\AppData\Roaming\Embarcadero\BDS\21.0 は隠しフォルダのため、エクスプローラで参照する際は、表示の設定で「隠しファイル」にチェックを付けて表示します。