Windows ストア アプリにて js ライブラリ使用時に WACK で UTF-8 エラーになる場合の対処方法
HTML + JavaScript で作成する Windows ストア アプリでは、Windows Library for JavaScript (WinJS) が提供する JS ライブラリだけでなく、jQuery のように一般的に公開されている JavaScript のライブラリも使用することができます。
しかし、これらライブラリを使用して作成したアプリのパッケージを WACK (Windows App Cert Kit) にかけると、JS ファイルに対して Fail が返り UTF-8 でエンコードを行うよう促される場合があります。
このエラーは、使用されている JS ファイルのテキストエンコード方式が Windows 8 のバイトコード キャッシュが処理できない方式であるために発生します。
このエラーを解決するには、Fail と判断された JS ファイルを Visual Studio 2012 でオープンし、文字エンコードを 「Unicode(UTF-8 シグネチャ付き) – コードページ 65001」を指定して保存しなおします。
具体的な手順は以下の通りです。
Visual Studio 2012 で問題の発生している JS ファイルをオープン
メニュー[ファイル] – [名前を付けて (js ファイルの名前) を保存する] を選択
ファイル保存用のダイアログボックスが表示されるので、右下の[上書き保存] ボタンの横にある▼ボタンをクリックし、[エンコード付で保存] を選択
[上書きしますか?] メッセージボックスが表示されるので [はい] を選択
[保存オプションの詳細設定] ダイアログボックスが表示されるので[エンコード] ドロップダウンリストボックスから 「Unicode(UTF-8 シグネチャ付き) – コードページ 65001」を選択し [OK] ボタンをクリック
以上で、JS ファイルのテキスト エンコードは UTF-8 のシグネチャ付きとなり、Windows 8 のバイトコードキャッシュが行われるようになります。
なお、Windows 8 のバイトコード キャッシュの機能については以下のドキュメントをご参照ください。
アプリの読み込み時間の短縮 (JavaScript と HTML を使った Windows ストア アプリ)
https://msdn.microsoft.com/ja-jp/library/windows/apps/hh849088.aspx