C# WinUI 3アプリを作っていく途中で、躓いた部分を備忘録的に投稿します。今回はWinUI3プロジェクトでXamlに入力した日本語が実行時の画面で文字化けする際の対処法です。
Xamlに保存した日本語
例えば、Xamlファイルに次のようなコードを追加します。
<AutoSuggestBox Grid.Column="4" QueryIcon="Find" PlaceholderText="検索" VerticalAlignment="Center" Width="260" Margin="4,0"/>
このXamlコードを実行すると、こんな感じで表示され文字化けする場合があります。
xml:lang=”ja-JP” など言語設定やフォント設定をしても文字化けが治りません。
ファイル保存時のエンコードを変更
Visual Studioの場合は、Xamlファイルを開いている状態で[ファイル|名前を付けて MainWindow.xaml を保存]メニューを選択します。
表示された[名前を付けてファイルを保存]画面で[上書き保存]ボタン右の[▼]をクリックして表示されたメニューから[エンコード付きで保存]メニューを選択します。
[名前を付けて保存の確認]画面で[はい]をクリックします。
[保存オプションの詳細設定]画面で[エンコード]一覧を開きます。
表示された一覧から[Unicode(UTF-8 シグネチャ付き)- コードページ 65001]を選択して[OK]ボタンをクリックします。
ソリューションをビルト後に実行すると、文字化けしていた部分が改善されます。
どうして、Xamlファイルの保存エンコードが[シフト JIS]なのか分かりませんが、保存エンコードをUnicodeに変更することで日本語で表示されるようになります。
まとめ
今回は短い記事ですが、WinUI 3 アプリでXamlに配置したコントロールを設定に、日本語を入力した場合、実行時に文字化けする場合の対象法について書きました。
Xamlファイルの保存形式が[シフト JIS]になっているのが原因です。
[名前を付けてファイルに保存]画面でファイルの保存形式を[日本語(シフト JIS)- コードページ932]から[Unicode(UTF-8 シグネチャ付き)- コードページ 65001]に変更して保存することで、実行時の文字化けが開園されます。
C#のWinUI 3アプリでXaml内の日本語が実行時に文字化けして困っている人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。