Server.UrlDecode(aa)和Server.UrlEncode(bb)是一起使用的。相当于加密和解密。

解决方案 »

  1.   

    UrlDecode 为了保证所有的浏览器都能正确的传输字符串,字符集里像"?","&","/"会被函数截取,我想"+"也是被截取的字符之一
      

  2.   

    string aa="%u4E2D%u6587%3C%3E%28%29%29%28%3B-%27+*/%2C%25%7B%24@";
    //string aa="%26+++++++++++++++++++++++++++++%26";

    StringWriter writer = new StringWriter();
    Server.UrlDecode(aa, writer);
    string bb = writer.ToString();

    Response.Write(bb);
    我试了,就是+会被过滤掉!那位有能替换Server.UrlDecode(aa, writer);的函数吗?
    就是能把上面的那些字符给转换出来,就可以了!多谢了
      

  3.   

    Server.UrlDecode(aa)和Server.UrlEncode(bb)是一起使用的。相当于加密和解密。
      

  4.   

    in url encoding, " " is converted to "+", so if you use Server.DecodeUrl on "+", it will convert "+" to a " ", consider to replace "+" with some weird character like "^", and after Server.UrlDecode, replace it back
      

  5.   

    其实我这个问题是这样的
    javascript有个函数escape(),还有个unescape()假如aa=escape("中国")
    则aa="%u4E2D%u56FD";
    用unescape(aa)能还原出“中国”但我想在C#中也能实现还原出“中国”两个字,
    用Server.UrlDecode(aa)能还原出“中国”两个字可是如果string aa="%u4E2D%u6587%3C%3E%28%29%29%28%3B-%27+*/%2C%25%7B%24@";
    用Server.UrlDecode(aa); 不知道为什么,就是哪个“+”号会被过滤掉那位有更好的解决办法吗????分数不够可以再加!
    多谢了!
      

  6.   

    因为'+'是个特殊字符,如果要解码的字符串里有'+'号,那么'+'会用空格字符代替,在html语言中,空格是不会显示的,所以最终结果好像'+'号消失了。所以如果要接收的字符串里有'+'号,会将其编码成"%2B"。也就是说'+'的编码之后的字符串是"%2B"。所以只要将要解码的字符串中的'+'号替换成"%2B"就可以解决这个问题了。如:
    string aa="%u4E2D%u6587%3C%3E%28%29%29%28%3B-%27+*/%2C%25%7B%24@";
    aa = aa.Replace("+", "%2B");
    aa = Server.UrlDecode(aa);
    这样就能得到正确的结果了。
      

  7.   

    思归老大都说了,让你把这个+给换成其他字符罗。 
    而且http://www.china+1.com/这样的url有意义吗?我很怀疑啊。
      

  8.   

    这个问题我翻译了一个java的函数给解决了因为java里面有个实现unescape()的函数我用C#翻译过来,就解决了呵呵,不管怎么样,还是谢谢各位了,揭帖了!