colon2 = colon2.encode('utf8')
port = port.encode('utf8')
path = '/'.join(urllib.parse.quote(urllib.parse.unquote(pce).encode('utf8'), '') for
    pce in parsed.path.split('/'))
query = urllib.parse.quote(urllib.parse.unquote(parsed.query).encode('utf8'), '=&?/')
fragment = urllib.parse.quote(urllib.parse.unquote(parsed.fragment).encode('utf8'))
netloc = ''.join((user, colon1, pass_, at, host, colon2, port))
return urlparse.urlunsplit((scheme, netloc, path, query, fragment))
print(fixurl('http://\xe2\x9e\xa1.ws/\xe2\x99\xa5'))
print(fixurl('http://\xe2\x9e\xa1.ws/\xe2\x99\xa5/%2F'))
print(fixurl('http://\xc5sa:abc123@\u27a1.ws:81/admin'))
print(fixurl('http://\u27a1.ws/admin'))
Лучший способ преобразовать URL-адрес Unicode в ASCII (UTF-8 с процентным экранированием) в Python?