diff -r db9fe49069ed Lib/urllib/request.py --- a/Lib/urllib/request.py Sun Jul 14 12:45:18 2013 -0700 +++ b/Lib/urllib/request.py Thu Jul 18 18:15:57 2013 +0800 @@ -1239,7 +1239,12 @@ h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: - h.request(req.get_method(), req.selector, req.data, headers) + url = req.selector + try: + url.encode('ascii') + except UnicodeEncodeError: + url = quote(req.selector) + h.request(req.get_method(), url, req.data, headers) except OSError as err: # timeout error h.close() raise URLError(err)