Strict Escaping Mode, Userinfo Support

Intended to supersede #2 and #20 per discussion.
Shouldn't that read:
raw = UTF8.encode(raw)[0]