这是我用escape加密:“基础教程”这几个字的结果:%u57FA%u7840%u6559%u7A0B  这是百度的传值编码:%BB%F9%B4%A1%BD%CC%B3%CC这两个编码得到的结果是一样的,但是我想要百度的那种传值,有js怎么做?用asp,和.net分别都怎么做?声明:用asp的server.URLEncode() 方法是不行的。

解决方案 »

  1.   

    alert( encodeURI( "基础教程"));
    或者alert( encodeURIComponent("基础教程"));
      

  2.   

    asp.netServer.UrlEncode("基础教程");
      

  3.   


    大哥,不行啊%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B  这个结果是用encodeURI输出的,下面那个encodeURIComponent和这个一样的,我想要结果是这样的。%BB%F9%B4%A1%BD%CC%B3%CC
      

  4.   

    encodeURI( "基础教程")这样不可以吗?先有UE来转码看看是否可以
      

  5.   

    Server.UrlEncode传递
    在接受页面用request.querystring或者request.form来获取
      

  6.   


    是可以编译,我想要的是gb2312的编码,并不是要utf-8的,所以encodeURI和escape得到的结果都不行
      

  7.   

    我只知道Java怎么转。asp和.net没玩过。帮你顶一下。
      

  8.   

    实现原理就是动态创建一个<form>和<iframe>
    指定<form>编码提交数据到<iframe>
    然后通过<iframe>传递会字符串<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title>UTF8页面采用GB2312编码实例</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    </head>
    <body>
    <input id="text_value" type="text" value="zswang 路过!"/>
    <input id="text_code" type="text" readonly="readonly"/>
    <input id="button_escape" type="button" value="转换" onclick="button_escape_Click();"/>
    <script>
    function button_escape_Click() {
    escapeEx(document.getElementById("text_value").value, "GB2312");
    }function escapeEx(params, charset) {
    if (document.all)
    var iframe = document.createElement("<iframe name='iframe_encode'></iframe>");
    else {
    var iframe = document.createElement("iframe");
    iframe.name = "iframe_encode";
    }
    var form = document.createElement("form");
    form.action = "#";
    form.method = "GET";
    document.body.appendChild(form);
    var input = document.createElement("input");
    input.name = "wd";
    input.value = params;
    form.appendChild(input);
    form.target = "iframe_encode";
    form.acceptCharset = charset;
    iframe.style.visibility = "hidden";
    form.style.visibility = "hidden";
    document.body.appendChild(iframe);
    if (document.all) {
    var old = document.charset;
    document.charset = charset;
    form.submit();
    document.charset = old;
    } else form.submit();
    }function outCode(code) {
    document.getElementById("text_code").value = code;
    }
    (function() {
    var params = /\?wd=(.*?)(#|$)/.exec(location);
    if (params) {
    parent.outCode(params[1]);
    }
    })();
    </script>
    </body>
    </html>这种变态的招数估计很少人能想出来。
      

  9.   

    #11楼:
    思路看起来比较怪招,但好象不是LZ所有的结果呀,我用的IE7
    原值:zswang路过
    测试转换结果:zswang%A1%A4%26%2365533%3B%26%2365533%3B
    期望转换结果:zswang%C2%B7%B9%FD
      

  10.   

    楼上表骗我,我拿IETester测试了一下:IE7
    zswang+%C2%B7%B9%FD%A3%A1IE6
    zswang+%C2%B7%B9%FD%A3%A1
      

  11.   

    骗倒是不是骗你:我复制了你页面上的代码到ue,然后另存为文件,然后执行,就出现了上面的结果。不过重新打开文件后,发现汉字已经是乱码(估计实际上是保存成utf8字符集了,但复制后在ue中显示是正确的)。把汉字改过来就再测试确实就可以了。
    不管怎样,学习了。
      

  12.   

    使用 form 提交后,从 uri 中截取,这个方法以前有想过,但是
    因为 form submit 后,要过一段时间才能读到 iframe 的 href.而且不能阻塞线程, 给使用带来一定麻烦
      

  13.   

    .net的做法
    System.Web.HttpUtility.UrlEncode("基础教程", System.Text.UnicodeEncoding.GetEncoding("GB2312")).ToUpper()
    就是百度的编码
      

  14.   


    没错,百度是Gb2312的,在.net里很好实现,但是我现在多个页面都有搜索框,我想用javascript来实现这个功能,想在任何一个页面点击搜索的时候都通过js编码,然后把传传到搜索页面。
      

  15.   

    解决方法:
    1.设置web.config文件 
    <system.web> 
    <globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" fileEncoding="gb2312" /> 
    </system.web> 2.asp.net对asp.net页面传值 
    进行传递 
    string Name = "中文参数"; 
    Response.Redirect("B.aspx?Name="+Server.UrlEncode(Name)); 
    进行接收 
    string Name = Request.QueryString["Name"]; 
    Response.Write(Server.UrlDecode(Name)); 3.javascript对asp.net页面传值。 
    <script language="javascript"> 
    function escode() 

    location.href ="B.aspx?Name="+escape(Name); 

    </script> 
    在asp.net页面中正常使用Request.QueryString("Name").toString()就可以得到正确的中文了 
    建议:URL传值不要传汉字。(首先可能会出现浏览器兼容问题,另外就是不安全)