URL-Parameter mit prozentualer Kodierung in Python kodieren
Bei der prozentualen Kodierung von URL-Parametern zur Vermeidung von Fehlern und zur Sicherstellung einer ordnungsgemäßen Normalisierung wird die eingebaute in der Funktion urllib.quote() kann unzureichend sein.
Standardkodierungsauslassung:
Verwendung von urllib.quote() wie folgt:
1 |
|
Die Codierung entscheidender Zeichen wie / bis / wird weggelassen, was zu Problemen mit der OAuth-Normalisierung führt.
Unicode-Unterstützungsmangel:
Darüber hinaus werden Unicode-Zeichenfolgen nicht verarbeitet, was dazu führt Ausnahmen beim Versuch, Nicht-ASCII-Zeichen zu kodieren.
Verbesserte Kodierung mit urllib.parse.quote() und sicheren Parametern:
Um diese Einschränkungen zu beheben, verwenden Sie urllib. parse.quote() aus Python 3, das eine Lösung bietet:
1 |
|
Der sichere Parameter ist standardmäßig „/“, aber die Angabe einer leeren Zeichenfolge deaktiviert zusätzliche ASCII-Zeichenausschlüsse und stellt so die ordnungsgemäße Kodierung von / sicher:
1 |
|
Behebung der Unicode-Verarbeitung in Python 2:
In Python 2 gab es einen Unicode-Verarbeitungsfehler mit urllib.quote(). Um dies zu umgehen, kodieren Sie die Zeichenfolge manuell als UTF-8, bevor Sie die Prozentkodierung anwenden:
1 2 |
|
Alternative: urllib.urlencode()
Für a Für einen einfacheren Ansatz sollten Sie die Verwendung von urllib.urlencode() in Betracht ziehen, das sowohl die Prozentkodierung als auch Unicode automatisch verarbeitet:
1 |
|
Das obige ist der detaillierte Inhalt vonSo kodieren Sie URL-Parameter in Python richtig: Beheben der Einschränkungen von „urllib.quote()' und „urllib.urlencode()'.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!