我有一个这样的地址:http://www.xxx.com/200807/%u6D4B%u8BD5.rar
这个地址%u6D4B%u8BD5.rar是我已经编码过了
我使用Response.Redirect("http://www.xxx.com/200807/%u6D4B%u8BD5.rar")
结果Response.Redirect再编码了一次,变成:http://www.xxx.com/200807/%25u6D4B%25u8BD5.rar
这样一来这个地址也就错了!
我使用Server.Transfer("http://www.xxx.com/200807/%u6D4B%u8BD5.rar")
结果报错,下载地址格式不正确,
如果不在程序中进行编号http://www.xxx.com/200807/测试.rar
使用Response.Redirect又没有问题~!`!
我的程序中又必须编码!
请那位大侠帮帮忙,给个好的建议!!

解决方案 »

  1.   

    在适当的时候进行一次UrlDecode
      

  2.   

    如果你在web.config或者页面中指定了GB2312编码,那么你转换的时候要用
    HttpUtility.UrlEncode("测试.rar", System.Text.Encoding.GetEncoding("GB2312")
    如果没有指定HttpUtility.UrlEncode("测试.rar")
      

  3.   

    以上我都试了,不行!
    Response.Redirect它总会对一些特殊字符编码!它为什么会编码啊?
    http://www.xxx.com/200807/%u6D4B%u8BD5.rar
    还有为什么这样的地址就不行呢?
      

  4.   

    用了'lbd22222'说的方法,居然可以.
    HttpUtility.UrlEncode("测试.rar", System.Text.Encoding.GetEncoding("GB2312"))
    用个变量保存UrlEncode后的值,
    再Response.Redirect,居然可以下载,但是有异常,这个异常又不影响下载!
    真的晕了!