解决方案 »

  1.   

    URL的协议rfc3986 只支持有限的字符。%不属于有效字符,转义是正确的。应该对方应该处理。服务器是asp.ne的话,我记得framework会自动处理。
      

  2.   

    +1 服务器端会自动解码。  我现在用winfrom编写的~~很简单的 有米有办法解决这个问题!!
      

  3.   

    +1 服务器端会自动解码。  我现在用winfrom编写的~~很简单的 有米有办法解决这个问题!!Winform写服务器端?用HttpUtility.UrlDecode解码
      

  4.   

    System.Net.HttpWebRequest.Create("http://www.asdfasdf.net/%1").RequestUri.ToString)
    得到结果:http://www.asdfasdf.net/%251
    Uri.UnescapeDataString("http://www.asdfasdf.net/%251")
    得到结果:http://www.asdfasdf.net/%1
      

  5.   

    +1 服务器端会自动解码。  我现在用winfrom编写的~~很简单的 有米有办法解决这个问题!!Winform写服务器端?用HttpUtility.UrlDecode解码
     我要写个采集器!!懂我意思吗?采集人家的数据~~~
      

  6.   


    那是你根本没有搞懂”需要提交%才能识别“是什么意思!提交的url中含有%,那么原始的内容不一定有%号,可能是转义之后才会有%号。绝不是说人家原始的内容就一定有%号。如果你没有这个url encode概念,就不会理解。
      

  7.   

      这么跟你说url_encode gbk 传递参数的时候 不是有 %字符串,然后get发送过去的时候.会吧%直接变成%25了。就怎么简单,如何解决这个问题。C# winfrom 
      

  8.   

    停留在这个上面纠结,根本是浪费时间。你应该把你的”采集数据的需要“稍微深入一点明白地说明。
      这么跟你说url_encode gbk 传递参数的时候 不是有 %字符串,然后get发送过去的时候.会吧%直接变成%25了
      

  9.   

    试试fastCSharp.expandfastCSharp.uri.CreateAbsolute("http://www.asdfasdf.net/%1", fastCSharp.uri.flags.ShouldBeCompressed | fastCSharp.uri.flags.E_QueryNotCanonical)
      

  10.   


    还是不大明白你到底是碰到了什么问题,如果你能更详细的描述一下,就对其他人更有帮助了。不过我肢解一下你自己的话,看看i不是下面这回事?
    如果 【get发送过去的时候.会吧%直接变成%25了】 这个现象存在的话,说明在 【get发送过去的时候】 处理里面已经进行了编码变换了,就不需要通过 【url_encode gbk 传递参数的时候】 这个处理了。
      

  11.   

    我想sp1234的意思是你不需要太关心%的问题。url_encode的目的是保证URL是合法有效的,所以会用%25替换%。程序自己会在处理的时候做url_decode处理,你如果直接把%发送到服务器,因为%不是合法的URL字符,反而不能识别了。
    有些虽然是标准,但是也有不按标准办事的,所以最关键的就是你在程序里面试一下把被编码的网址发送到服务器,看看有没有返回应该返回的网页。如果没有的话,大家在分析一下是什么原因。
    看一下:
    2.2 保留字符和百分号编码
    URL中的保留和不安全字符
    停留在这个上面纠结,根本是浪费时间。你应该把你的”采集数据的需要“稍微深入一点明白地说明。
      这么跟你说url_encode gbk 传递参数的时候 不是有 %字符串,然后get发送过去的时候.会吧%直接变成%25了