Wie unquote ein urlencoded unicode-string in python?
Habe ich eine unicode-Zeichenfolge wie "Tanım" codiert ist als "Tan%u0131m" irgendwie. Wie kann ich umwandeln dieser codierte Zeichenfolge zurück zum ursprünglichen unicode.
Anscheinend ist das urllib.unquote unicode nicht unterstützen.
InformationsquelleAutor der Frage hamdiakoguz | 2008-11-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
%uXXXX ist ein nicht-standard-encoding schemedie abgelehnt wurde durch das w3c, trotz der Tatsache, dass eine Implementierung lebt weiter Fort, auch im JavaScript-land.
Die mehr gängige Technik zu sein scheint, UTF-8 Kodieren Sie die Zeichenfolge und dann % escape-der resultierende Byte mit %XX. Dieses Schema wird unterstützt durch das urllib.unquote:
Leider, wenn Sie wirklich müssen zur Unterstützung %uXXXX, werden Sie wahrscheinlich haben, Rollen Sie Ihre eigenen decoder. Sonst, wahrscheinlich ist es weit mehr vorzuziehen, einfach UTF-8-Kodierung von unicode und dann % escape-der resultierenden bytes.
Ein vollständigeres Beispiel:
InformationsquelleAutor der Antwort Aaron Maenpaa
InformationsquelleAutor der Antwort Markus Jarderot
Dies wird es tun, wenn Sie absolut müssen dieses (ich bin wirklich nicht einverstanden mit dem rufe "nicht-standard"):
InformationsquelleAutor der Antwort Ali Afshar
es ist ein Fehler in der oben genannten version, wo es freaks Sie heraus, manchmal, wenn es gibt sowohl ascii-kodiert, und unicode-codierte Zeichen in der Zeichenfolge. Ich denke, die speziell, wenn es Zeichen aus der oberen 128 range, wie '\xab' zusätzlich zu unicode.
zB. "%5B%AB%u03E1%BB%5D" verursacht diesen Fehler.
Fand ich, wenn Sie Tat genau das unicode-zunächst, das problem ging Weg:
InformationsquelleAutor der Antwort