diff --git a/django/core/validators.py b/django/core/validators.py index dad0a7924f..27a42c4cda 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -81,7 +81,7 @@ class URLValidator(RegexValidator): "User-Agent": self.user_agent, } try: - req = urllib2.Request(url, None, headers) + req = urllib2.Request(url.encode('utf-8'), None, headers) u = urllib2.urlopen(req) except ValueError: raise ValidationError(_(u'Enter a valid URL.'), code='invalid') diff --git a/tests/regressiontests/forms/tests/fields.py b/tests/regressiontests/forms/tests/fields.py index f198e6c796..a9272bed2a 100644 --- a/tests/regressiontests/forms/tests/fields.py +++ b/tests/regressiontests/forms/tests/fields.py @@ -567,6 +567,8 @@ class FieldsTests(TestCase): f.clean('http://google.com/we-love-microsoft.html') # good domain, bad page except ValidationError, e: self.assertEqual("[u'This URL appears to be a broken link.']", str(e)) + # UTF-8 char in path + self.assertEqual(u'http://de.wikipedia.org/wiki/T\xfcr', f.clean(u'http://de.wikipedia.org/wiki/T\xfcr')) def test_urlfield_4(self): f = URLField(verify_exists=True, required=False)