1. 私の環境: SP1 パッチが適用されていない vs2005 では、Web アプリケーションを作成できません。Web サイトのみです。
2. web.config
3. jqueryのPostデータの書き方
$(document).ready(function (){
$("#btnSend").click(function(){
$ .ajax( {
タイプ: "POST"、
url: "PrecisionAHandle.ashx"、
contentType: "application/x-www-form-urlencoded; charset=UTF-8"、
データ: { "StudentId": $("#LblStudentId").attr("innerText")、"StudentName": $("#LblStudentName").attr("innerText")、"StudentAge": $("#txtStudentAge ")。 attr("value")},
成功: function(html){
$("#TabContainer").html(html);
}
});
});
StudentName は中国語です
4. .ashx ファイル内のパラメーターを受け取る方法
string strStudentName = context。 ["StudentName"];
注意: contentType: "application/x-www-form-urlencoded; charset=UTF-8" がない場合、context.Request.Params["StudentName"] は文字化けします。
.ashx の context.Request.ContentEncoding を追跡すると、jquery によって投稿されたデータが gb2312 エンコーディングを使用していることがわかります。おそらく context.Request はデータ受信時にデフォルトでデコードに utf-8 を使用しますが、jquery は utf-8 を使用します。 Post データのデータをデコードするために utf-8 が使用されていなかったため、.ashx の context.Request.Params["StudentName"] が文字化けして表示されました。
奇妙な現象:
現象 1: contentType: "application/x-www-form-urlencoded; charset=UTF-8" を追加せずに、.ashx ファイルで以下を使用します。 このステートメントは文字列を正しく表示できます。
StreamReader steamRd = new StreamReader(HttpContext. Current.Request.InputStream);
string strPostData = steamRd .ReadToEnd();
strPostData =HttpUtility.UrlDecode(strPostData, Encoding.GetEncoding("utf-8")); >現象 2: web.config の関連する設定を
に変更した後、contentType が追加されているかどうかに関係なく、 application/x-www-form-urlencoded; charset=UTF-8" の場合、バックグラウンドで .ashx ファイルによって受信されるパラメーターは依然として文字化けします。 web.config を変更すると、Web サイトのコンパイルと実行が非常に遅くなります。
参考記事:
http://www.jb51.net/article/26658.htm
http://www.jb51.net/article /26659.htm