Frage

Wie man eine Query-String-URL, die nicht-ASCII-Zeichen in DJANGO umleiten?

Wenn ich return HttpResponseRedirect(u'/page/?title=' + query_string) verwenden, in denen die query_string Zeichen wie 你好 enthält, ich erhalte eine Fehlermeldung

  

'ascii' Codec nicht Zeichen in Position 21-26 kodieren kann: Ordnungszahl nicht   in-Bereich (128), HTTP-Response-Header in US-ASCII-Format vorliegen müssen ...

War es hilfreich?

Lösung

HttpResponseRedirect(((u'/page/?title=' + query_string).encode('utf-8'))

ist das erste, was zu versuchen (da UTF8 die einzige populäre Codierung ist, die alle Unicode-Zeichen verarbeiten kann). Das auf jeden Fall loswerden Ausnahme bekommen sollten Sie beobachten - die Frage bewegt sich dann zu den Handler für /page gewährleisten ordnungsgemäß mit UTF-8 kodierten Anfragen umgehen kann (vermutlich durch sie wieder in Unicode Decodierung). Allerdings ist dieser Teil nicht, streng genommen, Germane auf diesen speziellen Fragen Sie fragen!

Andere Tipps

django Art und Weise:

from django.http import HttpResponseRedirect
from django.utils.http import urlquote

return HttpResponseRedirect(u'/page/?title=%s' % urlquote(query_string))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top