Escaping username characters in basic auth URLs

Solution 1:

According to RFC 3986, section 3.2.1, it needs to be percent encoded:

  userinfo    = *( unreserved / pct-encoded / sub-delims / ":" )

So it looks like

http://david%[email protected]/path/

Is right. Where are you trying to read it? Maybe you need to manually decode the value?