htm页的提交中我写的是:(其中msg为"一,二,三,"等汉字组合,中间用逗号分开。)
document.location="frmcgrkhz.aspx?imonth="+lbmonth.value+"&strcheck="+msg;
在服务器端这样接收:
string []field=Request["strcheck"].Split(',');
为什么field里只传进",,"
也就是在客户端的htm中怎么编码呢?

解决方案 »

  1.   

    汉字使用Server.UrlEncode(str)编码再传和使用Server.UrlDecode(str)解码得到
      

  2.   

    try:window.location.href="xx.aspx?name="+escape("中文")
      

  3.   

    bcb里也提供了编码的函数HTTPEncode
      

  4.   

    <script language=Javascript>
    <!--
    function urlencode(str) {
    var ns = (navigator.appName=="Netscape") ? 1 : 0;
    if (ns) { return escape(str); }
    var ms = "%25#23 20+2B?3F<3C>3E{7B}7D[5B]5D|7C^5E~7E`60";
    var msi = 0;
    var i,c,rs,ts ;
    while (msi < ms.length) {
    c = ms.charAt(msi);
    rs = ms.substring(++msi, msi +2);
    msi += 2;
    i = 0;
    while (true) { 
    i = str.indexOf(c, i);
    if (i == -1) break;
    ts = str.substring(0, i);
    str = ts + "%" + rs + str.substring(++i, str.length);
    }
    }
    return str;
    }
    //-->
    </script>
      

  5.   

    把=编码成%3D,把&编码成%26,以次类推。
    中文编码成%xx%xx,双字节的。
      

  6.   

    Page.Request.QueryString["strcheck"]
    如果不行可能就是逗号和中文的问题了,request方式传参是有很多问题的,进行编码转换吧
    例如escape/unescape