]> git.ozlabs.org Git - patchwork/blobdiff - apps/patchwork/filters.py
filters: handle utf-8 characters when building filter querystring
[patchwork] / apps / patchwork / filters.py
index 52fc03fe19d655f78324cea43ef3533a7d232b6e..002a0a855b491c93240eb23e77d404116e37406e 100644 (file)
@@ -445,8 +445,14 @@ class Filters:
             if remove.param in params.keys():
                 del params[remove.param]
 
-        return '?' + '&'.join(['%s=%s' % (quote(k), quote(v))
-                                for (k,v) in params.iteritems()])
+        pairs = params.iteritems()
+
+        def sanitise(s):
+            if not isinstance(s, basestring):
+                s = unicode(s)
+            return quote(s.encode('utf-8'))
+
+        return '?' + '&'.join(['%s=%s' % map(sanitise, p) for p in pairs])
 
     def querystring_without_filter(self, filter):
         return self.querystring(filter)