function ViewPFGZL()
        {            var YEAR = getSelectedText("ddlNiandu");
            if (YEAR == "--请选择--") {
                alert("请选择要查询的年份!");
                return;
            }
            var projectname=  document.getElementById("txtSelectedMLValues").value;
            var param = "Opera=NDPFGZL&YEAR=" + YEAR+"&pro="+projectname+"&r="+Math.random(1000);
            var options =
            {
                method: 'GET',
                parameters: param,
                onComplete:
                function(transport)
                {
                    var retv = transport.responseText;
                    if (retv != "")
                    {
                        if (navigator.appName.indexOf("Explorer") > -1)
                        {      //判断是否IE浏览器
                            document.getElementById("DivPfgzl").innerHTML = retv;
                        }
                        else
                        {                                              //其他浏览器;火狐、谷歌等浏览器
                            document.getElementById("DivPfgzl").textContent = retv;
                        }
                    }
                }
            }
            new Ajax.Request('NianduGZLTongji.aspx', options);
        }
后台cs:
  if (Opera == "NDPFGZL")//统计-批复工作量一览表
            {  
                string Nianfen = Request.QueryString["YEAR"].ToString();
               
                string aa = Request.QueryString["pro"].ToString();
               
             
            }
projectname是中文,传到后台是就变成了乱码。 已经在webconfig里设置了 语言为GB2314,

解决方案 »

  1.   

    对参数进行编码
    var param =encodeURI(“中文”)
      

  2.   

    后台还用解码吗  我直接传过去还是乱码
    ar projectname= encodeURI(document.getElementById("txtSelectedMLValues").value);
      var param = "Opera=NDPFGZL&YEAR=" + YEAR+"&pro="+projectname+"&r="+Math.random(1000);
      

  3.   

    后台还用解码吗 我直接传过去还是乱码
    var projectname= encodeURI(document.getElementById("txtSelectedMLValues").value);
      var param = "Opera=NDPFGZL&YEAR=" + YEAR+"&pro="+projectname+"&r="+Math.random(1000);
      

  4.   

    参数传递是中文的时候要进行编码,这里给你两种编码方式:
    encodeURIComponent("中文");有时候如果encodeURIComponent编码不行的时候需要加密两次
    escape("中文");
      

  5.   

    1:
    var projectname1= document.getElementById("txtSelectedMLValues").value;
    var projectname=escape(projectname1);
    var param = "Opera=NDPFGZL&YEAR=" + YEAR+"&pro="+projectname+"&r="+Math.random(1000);Microsoft JScript 运行时错误: 被解码的 URI 不是合法的编码
    2:
    var projectname1= document.getElementById("txtSelectedMLValues").value;
    var projectname=encodeURIComponent(encodeURIComponent(projectname1));
    var param = "Opera=NDPFGZL&YEAR=" + YEAR+"&pro="+projectname+"&r="+Math.random(1000);
    后台cs:
    string pr = Server.UrlDecode(Request.QueryString["pro"].ToString());//乱码
    string aa = Request.QueryString["pro"].ToString();//乱码
    3:
    var projectname= encodeURI(document.getElementById("txtSelectedMLValues").value);
    var param = "Opera=NDPFGZL&YEAR=" + YEAR+"&pro="+projectname+"&r="+Math.random(1000);
    后台cs:
    string pr = Server.UrlDecode(Request.QueryString["pro"].ToString());// pr乱码
    string aa = Request.QueryString["pro"].ToString();//aa乱码]不知道是啥原因