title: Double/incomplete Parameter Url Encoding
body: <p>In my web app, my parameters can contain all sorts of crazy characters (russian chars, slashes, spaces etc) and can therefor not always be represented as-is in a URL.<br>
  Sending them on their merry way will work in about 50% of the cases. Some things like spaces are already encoded somewhere (I'm guessing in the Html.BuildUrlFromExpression does). Other things though (like "/" and "*") are not.</p>
  
  <p>Now I don't know what to do anymore because if I encode them myself, my encoding will get partially encoded again and end up wrong. If I don't encode them, some characters will not get through.</p>
  
  <p>What I did is manually .replace() the characters I had problems with.<br>
  This is off course not a good idea.</p>
  
  <p>Ideas?</p>
  
  <p><strong>--Edit--</strong><br>
  <strong>I know there are a multitude of encoding/decoding libraries at my disposal.</strong>
  It just looks like the mvc framework is already trying to do it for me, but not completely.</p>
  
  <pre><code>&lt;a href="&lt;%=Html.BuildUrlFromExpression&lt;SearchController&gt;(c=&gt;c.Search("", 1, "a \v/&amp;irdStr*ng"))%&gt;" title="my hat's awesome!"&gt;
  </code></pre>
  
  <p>will render me</p>
  
  <pre><code>&lt;a href="/Search.mvc/en/Search/1/a%20%5Cv/&amp;irdStr*ng" title="my hat's awesome!"&gt;
  </code></pre>
  
  <p>Notice how the forward slash, asterisk and ampersand are not escaped.
  Why are some escaped and others not? How can I now escape this properly?</p>
  
  <p>Am I doing something wrong or is it the framework?</p>