title: Special Characters in password causing Basic Auth Failure in Mojolicious UA
body: <p>The following program fails when trying to go to an https web site that requires basic authentication.</p>
  
  <pre><code>use Mojo::UserAgent;
  my $ua = Mojo::UserAgen-&gt;new;
  
  my $user = "foobar";
  my $pass = "Cant#change";
  
  my $url  = "https://$user:$pass\@site.foo.com";
  my $tx   = $ua-&gt;get($url);
  
  if (my $res = $tx-&gt;success) {
      say $res-&gt;body;
  }
  else {
      my ($message, $code) = $tx-&gt;error;
      say $code ? "$code response $message" : "Connection error: $message";
  }
  </code></pre>
  
  <p>When I run with MOJO_USERAGENT_DEBUG=1 I get the following output:</p>
  
  <pre><code>-- Blocking request (https://foobar:cant#change@site.foo.com)
  -- Connect (https:foobar:Cant:443)
  Connection error: Couldn't connect
  </code></pre>
  
  <p>Using Mojolicious 3.35 updated from CPAN.  Unfortunately, passwords will likely contain "special characters" (ascii #!@%^&amp; and the like) and changing the password to something not containing a # is not an option.  The web server handles the request correctly in web browsers, so I do not believe it is a web server configuration issue.</p>
  
  <p>So is there another way to achieve this in Mojo?</p>