[py3] Re-decoded string after idna encoding

This commit is contained in:
Claude Paroz 2012-08-11 22:44:42 +02:00
parent 6602103338
commit 900816464d
2 changed files with 4 additions and 4 deletions

View File

@ -57,7 +57,7 @@ class URLValidator(RegexValidator):
value = smart_text(value)
scheme, netloc, path, query, fragment = urlsplit(value)
try:
netloc = netloc.encode('idna') # IDN -> ACE
netloc = netloc.encode('idna').decode('ascii') # IDN -> ACE
except UnicodeError: # invalid domain part
raise e
url = urlunsplit((scheme, netloc, path, query, fragment))
@ -84,7 +84,7 @@ class EmailValidator(RegexValidator):
if value and '@' in value:
parts = value.split('@')
try:
parts[-1] = parts[-1].encode('idna')
parts[-1] = parts[-1].encode('idna').decode('ascii')
except UnicodeError:
raise e
super(EmailValidator, self).__call__('@'.join(parts))

View File

@ -143,7 +143,7 @@ def smart_urlquote(url):
# Handle IDN before quoting.
scheme, netloc, path, query, fragment = urlsplit(url)
try:
netloc = netloc.encode('idna') # IDN -> ACE
netloc = netloc.encode('idna').decode('ascii') # IDN -> ACE
except UnicodeError: # invalid domain part
pass
else:
@ -206,7 +206,7 @@ def urlize(text, trim_url_limit=None, nofollow=False, autoescape=False):
elif not ':' in middle and simple_email_re.match(middle):
local, domain = middle.rsplit('@', 1)
try:
domain = domain.encode('idna')
domain = domain.encode('idna').decode('ascii')
except UnicodeError:
continue
url = 'mailto:%s@%s' % (local, domain)