Pages

2012/07/23

[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
Related Posts Plugin for WordPress, Blogger...