title: System.Uri can't parse when password or username field contains a special character
body: <p>The following code throws System.UriFormatException:</p>
  
  <pre><code>var uri = new UriBuilder("ftp://user:pass#word@ftp.somewhere.com:21/fu/bar.zip");
  </code></pre>
  
  <p><em>System.UriFormatException: Invalid URI: A port was expected because of there is a colon (':') present but the port could not be parsed.</em></p>
  
  <p>Removing the <strong>#</strong> symbol from the password field solves the issue.</p>
  
  <ol>
  <li>Is a <strong>#</strong> symbol a valid character to have in the password field? </li>
  <li>Is there a way to escape this? </li>
  <li>Is this a known bug in the parsing routine of the Uri class?</li>
  <li>How does one get around this - assuming you can't change the password? ;-)</li>
  </ol>
  
  <p>Thanks, Andrew</p>