パス名に「 î 」という文字を含むファイルを WiX スクリプトに追加しました。Light.exe は次のように文句を言います:
指定されたデータベース コード ページ '1252' では使用できない文字を含む文字列が提供されました
問題の文字は、Windows-1252 エンコーディングの 0xEE、つまり、UTF-8 の 0x00EE Unicode または 0xC3AE です。これらのファイルは、heat.exe によって生成された wxs ファイルにあり、この xml は UTF-8 としてエンコードされています。
エラーメッセージは、データベースが 1252 のときに UTF エンコーディングで文字を入力しようとしたという事実から来ていると思いますか? UTF は Windows インストーラーで実際にはサポートされていないため ( WiX のドキュメントで説明されているように)、1252 または iso-8859 でエンコードされた入力 xml を使用する必要がありますか? もしそうなら、heat.exe にその出力に別のエンコーディングを使用するように指示できますか?
私の質問はこれに似ています: heat.exe を活用し、すでにローカライズされたファイル名を収集し、それらを wix を使用して msi に含めますが、違いは、その場合、文字が「真の」非 ansi 文字であるということです。 1252 で正しくエンコードされますが、utf-8 入力ファイルからの変換が機能しないようです。