diff --git a/django/contrib/syndication/feeds.py b/django/contrib/syndication/feeds.py index 428767ae48..b1d0cf02c7 100644 --- a/django/contrib/syndication/feeds.py +++ b/django/contrib/syndication/feeds.py @@ -2,14 +2,14 @@ from django.core.exceptions import ImproperlyConfigured, ObjectDoesNotExist from django.template import Context, loader, Template, TemplateDoesNotExist from django.contrib.sites.models import Site from django.utils import feedgenerator -from django.utils.encoding import smart_unicode +from django.utils.encoding import smart_unicode, iri_to_uri from django.conf import settings def add_domain(domain, url): if not url.startswith('http://'): # 'url' must already be ASCII and URL-quoted, so no need for encoding # conversions here. - url = u'http://%s%s' % (domain, url) + url = iri_to_uri(u'http://%s%s' % (domain, url)) return url class FeedDoesNotExist(ObjectDoesNotExist): diff --git a/django/core/handlers/modpython.py b/django/core/handlers/modpython.py index e26f234fe5..7c4bbb3082 100644 --- a/django/core/handlers/modpython.py +++ b/django/core/handlers/modpython.py @@ -2,6 +2,7 @@ from django.core.handlers.base import BaseHandler from django.core import signals from django.dispatch import dispatcher from django.utils import datastructures +from django.utils.encoding import force_unicode from django import http from pprint import pformat import os @@ -13,7 +14,7 @@ import os class ModPythonRequest(http.HttpRequest): def __init__(self, req): self._req = req - self.path = req.uri + self.path = force_unicode(req.uri) def __repr__(self): # Since this is called as part of error handling, we need to be very diff --git a/django/core/handlers/wsgi.py b/django/core/handlers/wsgi.py index 49938e25dc..2db83fccfc 100644 --- a/django/core/handlers/wsgi.py +++ b/django/core/handlers/wsgi.py @@ -2,6 +2,7 @@ from django.core.handlers.base import BaseHandler from django.core import signals from django.dispatch import dispatcher from django.utils import datastructures +from django.utils.encoding import force_unicode from django import http from pprint import pformat from shutil import copyfileobj @@ -73,7 +74,7 @@ def safe_copyfileobj(fsrc, fdst, length=16*1024, size=0): class WSGIRequest(http.HttpRequest): def __init__(self, environ): self.environ = environ - self.path = environ['PATH_INFO'] + self.path = force_unicode(environ['PATH_INFO']) self.META = environ self.method = environ['REQUEST_METHOD'].upper()