我发现问题,在传值有中文,javascript中如何用.net那样的urlencode了???我用的是在button的点击事件。
我用的是一下代码,cname和tmane都是中文的,用button选定值传出去,但是用Default2接收时候老是不能接收完全,估计是编码问题。
protected void Button1_Click(object sender, EventArgs e)
{
string cname = DropDownList1.SelectedValue.Trim();
string tname = str();
Response.Write("<script language='JavaScript'>
window.open('Default2.aspx?cname='"+cname+"'&tname='"+tname+"'')</script>")
}这样将值传给Default2,但是如何将cname和tname格式化啊,他们都是中
文 ,如何编码啊?像urldecode和urlencode那样啊

解决方案 »

  1.   

    最简单的办法就是改WebConfig
      

  2.   

    Server.UrlEncode(this.txtType.Text.Trim())
      

  3.   

    window.open('Default2.aspx?cname='"+Server.UrlEncode(cname)+"'&tname='"+Server.UrlEncode(tname)+"'')</script>")
      

  4.   

    <system.web> <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" /> </system.web> 
    一般来说。设置web.config文件就可以了<script language="JavaScript"> 
    function GoUrl() 

    var Name = "中文参数"; 
    location.href = "B.aspx?Name="+escape(Name); 

    </script> 
    <body onclick="GoUrl()"> 
    >> 进行接收 
    string Name = Request.QueryString["Name"]; 
    Response.Write(Server.UrlDecode(Name));
      

  5.   

    window.open('Default2.aspx?cname='"+Server.UrlEncode(cname)+"'&tname='"+Server.UrlEncode(tname)+"'')</script>")
    ========================================================
    这样不是行么
      

  6.   

    <globalization responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" />
      

  7.   

    window.open('Default2.aspx?cname='"+Server.UrlEncode(cname)+"'&tname='"+Server.UrlEncode(tname)+"'')</script>")这个不得啊,我用了。用<system.web><globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" /></system.web> 
    就更加奇怪了,老是在原来的页面,不跳转,
      

  8.   


                                    如何传递汉字
    页面A传递直的代码
    String CNAME=Server.UrlEncode(cname);
    Response.Redirect("Default2.aspx?cname="+CNAME);页面B接受的代码
    String CNAME=Server.UrlDecode(Request.Querystring["cname"]);
      

  9.   

    还有就是在config里面设置为gb2312
      

  10.   

    window.open('Default2.aspx?cname=\"+escape('"+cname+"')+\"&tname=\"+escape('"+tname+"')\"')</script>")
      

  11.   

    回复人:lincai(隐身) ( 三级(初级)) 信誉:100  2007-07-20 10:59:19  得分:0

    window.open('Default2.aspx?cname=\"+escape('"+cname+"')+\"&tname=\"+escape('"+tname+"')\"')</script>")
    老大在接受页面如何解码啊??解码后还要判断的啊,呵呵,估计有戏啊,这个
      

  12.   

    Response.Write("<script language='JavaScript'>window.open('default2.aspx')</script>");
    这个语句一点问题都没有,新打开页面,
    但是如果用
     Response.Write("<script language='JavaScript'>window.open
    ('Default2.aspx?cname=\"+escape('"+cname+"')+\"&tname=\"+escape('"+tname+"')\"')
    </script>")
    就无法打开新页面,估计那个格式有问题啊,
      

  13.   

    你可以先用 escape 对要传递的内容进行编码, 到了后台再用 unescape 解码
      

  14.   

    解码用 Server.UrlDecode(xxx)string strJS = "<script language=\"JavaScript\">window.open
    (\"Default2.aspx?cname=\"+escape('"+cname+"')+\"&tname=\"+escape('"+tname+"'))</script>";
    Response.Write(strJS);
      

  15.   

    我来终结这个问题:
    假设原来字符串为oldstring,变换后为okstring
    okstring = system.web.HttpUtility.UrlEncode(Encoding.getEncoding("gb2312").getbytes(oldstring));
    一步到位!
    记着给分!
    这个问题我昨天搞懂!我在做模拟提交表格时也遇到了类似问题!!
      

  16.   

    回复人:lincai(隐身) ( 三级(初级)) 信誉:100】的方法可以实现,我用的是script中的,很多人给urlendecode()是不得的,给分,呵呵.