diff --git a/django/core/validators.py b/django/core/validators.py index 233c0886ac..d6c4b28743 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -84,6 +84,7 @@ class URLValidator(RegexValidator): "Connection": "close", "User-Agent": self.user_agent, } + url = url.encode('utf-8') broken_error = ValidationError( _(u'This URL appears to be a broken link.'), code='invalid_link') try: diff --git a/tests/regressiontests/forms/tests/fields.py b/tests/regressiontests/forms/tests/fields.py index 26b1c70825..3f7bc07f60 100644 --- a/tests/regressiontests/forms/tests/fields.py +++ b/tests/regressiontests/forms/tests/fields.py @@ -571,6 +571,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)