MVC on Windows Azure 開発におけるミニ Tips ~ Site.Master の文字コード変更
いよいよ開始した Tech Days 2010。
順調にセッションが進んでいますが、私も明日のセッションの準備を継続中。。。。
すでに書かせていただいているとおり今回は 「ハイブリッド型クラウドにおけるデータ同期ソリューションの活用」ということで、SQL Azure と SQL Server の連携ソリューションである(となる) Microsoft Sync Framework の紹介をします。
その際のデモアプリとして、NerdDineer を Windows Azure に乗せたアプリを作成するのですが、その際に問題になったのが、ローカルの環境では問題のなかったアプリケーションが、Windows Azure 上では文字化けしてしまう、という現象。
いくつか試していた結果、判明したのが、NerdDinner のサンプルコードの一部が Shift-JIS でエンコードされている、という問題。
Visual Studio では通常 UTF-8 でエンコードしますし、また Shift-JIS でエンコードされたファイルも普通に編集できるので、気づくまでに時間がかかりました。。。(しかも、ローカル環境では日本語版のOS、IIS、.NET を使用しているためか正しく日本語が吐き出されます)
で、その後確認したところ、VS2008 + MVC 1 の環境では、デフォルトの MVC テンプレートを使用すると、Site.Master も Shift-JIS でエンコードされており、NerdDinner でなくとも、同様に文字化けの問題が発生するようです。
ということで Tips。
Windows Azure 上に MVC アプリケーションを乗せる場合は、最初に Site.Master の文字コードを変更してください。(VS2008+MVC1)
一番簡単なのは、Site.Master をノートパッドで開いて、「名前をつけて保存」でダイアログが出たら、文字コードに UTF-8を指定して、同じ名前で上書き保存する、ということ。
ついでに、この際に Visual Studio で Site.Master を開いていないようにしてください。
デモについては、上記の方法でコツコツ文字コードの変換を行って、無事に正しく表示されるようになりました(たぶん本番も大丈夫ではないかと)。
では!