id,summary,reporter,owner,description,type,status,component,version,severity,resolution,keywords,cc,stage,has_patch,needs_docs,needs_tests,needs_better_patch,easy,ui_ux 3553,urlpatterns uses urllib.quote/unquote should use urllib.quote/unquote_plus,justin-django@…,Graham King,"When using the + character to represent spaces in urls it is impossible to differentiate between a literal + and an escaped %2B in the url. Example {{{ urlpatterns = (r'/search/(?.*)$,app.search) }}} {{{ def search(request, query): print ""query: ""+query }}} Observed Visiting http://example.com/search/foo%2B+bar causes django to print foo++bar Expected Visitin http://example.com/search/foo%2B+bar should cause django to print foo+ bar Solution I assume that django is using urllib.quote/unqoute Changing it to use urllib.quote_plus and urllib.unqoute_plus would produce the expected behavior and not have any side affects ",,closed,Core (Other),0.95,,wontfix,sprintsept14,,Design decision needed,0,0,1,0,0,0