URI Encoding Strangeness
<p>This is related to another <a href="http://stackoverflow.com/questions/1101266/bittorrent-tracker-announce-problem">open question of mine</a>.  While there aren't any <em>actual</em> answers, <a href="http://stackoverflow.com/users/76217/dtb">dtb</a> started me down this track so if it bears fruit I'll be accepting his answer.</p>

<p>I'm generating an announce url for a BitTorrent tracker in some (fairly hairy) C# code.</p>

<p>The end result is something like:  </p>

<pre>
http://208.106.250.207:8192/announce?info_hash=-%CA8%C1%C9rDb%ADL%ED%B4%2A%15i%80Z%B8%F%C&peer_id=01234567890123456789&port=6881&uploaded=0&downloaded=0&left=0&compact=0&no_peer_id=0&event=started
</pre>

<p>If I copy paste this into an address bar, I get a valid response from the tracker.  However, my code is getting an error message back (invalid info_hash).</p>

<p>The code dispatching the request:</p>

<pre><code>... Code building the URI ...
String uri = BuildURI(); //This results in the above URI string.
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uri);
req.Proxy = new WebProxy();  //Some examples online suggest this is required, so WARNING: here be voodoo (determine if necessary later)
WebResponse resp = req.GetResponse();
Stream stream = resp.GetResponseStream();
... Code parsing the stream ...
</code></pre>

<p>If I debug and pull out the string version of req.RequestUri, I get:</p>

<pre>
http://208.106.250.207:8192/announce?info_hash=-Ê8ÁÉrDb­Lí´*iZ¸%25F%25C&peer_id=01234567890123456789&port=6881&uploaded=0&downloaded=0&left=0&compact=0&no_peer_id=0&event=started
</pre>

<p>I can't actually tell what's being sent to the tracker "on the line", but it looks like I'm doing something dumb with regard to URIs.  Anyone know what?</p>
