[ASP.NET AJAX] Update Panel で文字化けする。

Visual Studio 2005 のバグでハマったお話 (Visual Studio 2008 ではバグフィックスされている) 。
そもそも、VIsual Studio 2005 は、Ajax にネイティブに対応しているわけではなく、途中から追加機能として使えるようになったわけだが (Atlusってやつ) 、ページの文字コードが UTF-8 以外の場合、文字化けが発生することがあるらしい。

これは以下の JavaScript をページに埋め込むことでとりあえず解決する。

function pageLoad(sender, args) {
    if (!args.get_isPartialLoad()) {
        Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(OnBeginRequest);
    }
}
function OnBeginRequest(sender, args) {
    args.get_request().get_headers()["Content-Type"] = "application/x-www-form-urlencoded; charset=utf-8";
}

まぁ、ページのエンコードを UTF-8 以外に変更している特殊な環境下でしか発生しないかもしれないが、VS2005 と Update Panel で文字化けしたらこれが効くかもしれない。

参考:using non UTF-8 encoding will break special character with updatepanel - connect.microsoft

このブログの人気の投稿

コピーした行の挿入が表示されない時はフィルタされていないかチェック

Excel で一部の図形だけ固定する