UTF-8 Prozent Kodierung und Python

Ich versuche, Python zu bekommen, um mir Prozent codierte Strings zu geben. Die API Ich interagiere mit (was ich denke, ist mit Prozent codiert UTF-8), gibt% c3% ae für î. Allerdings gibt pythons urllib.quote% 3F.

import urllib mystring = "î" print urllib.quote(mystring) print urllib.quote_plus(mystring) print urllib.quote(mystring.encode('utf-8')) 

Jede Hilfe geschätzt.

2 Solutions collect form web for “UTF-8 Prozent Kodierung und Python”

Ihre Datei muss Ihre Zeichenfolge als utf-8 kodieren, bevor sie sie zitiert, und die Zeichenfolge sollte Unicode sein. Sie müssen auch die entsprechende Dateikodierung für Ihre Quelldatei im coding angeben:

 # -*- coding: utf-8 -*- import urllib s = u'î' print urllib.quote(s.encode('utf-8')) 

Gibt mir die Ausgabe:

 %C3%AE 

Das ist, weil Sie nicht deklarieren die Kodierung Ihre Datei verwendet wird, so dass Python es aus Ihrer aktuellen locale Konfiguration locale . Ich werde Ihnen vorschlagen, dies zu tun:

 # -*- coding: utf-8 -*- import urllib mystring = "î" print urllib.quote(mystring) print urllib.quote_plus(mystring) 

Und auch stellen Sie sicher, dass Ihre file.py wird auf Festplatte mit utf-8 Codierung gespeichert .

Für mich gibt das:

 $python ex.py %C3%AE %C3%AE 

Paar von Vorbehalten. Wenn Sie dies aus dem Interpreter ausprobieren, funktioniert das # -*- coding: utf-8 -*- nicht, wenn Ihre Konsolenkodierung nicht utf-8 . Stattdessen solltest du es ändern, was auch immer die Kodierung deiner Konsole benutzt: # -*- coding: (encoding here) -*- .

Dann sollten Sie Ihre Zeichenfolge in Unicode decode , indem Sie die decode verwenden und den Codierungsnamen, den Ihre Konsole als Argument verwendet, übergeben:

 mystring = "î".decode('<your encoding>') 

Und später geht es an urllib codiert als utf-8 :

 print urllib.quote(mystring.encode('utf-8')) print urllib.quote_plus(mystring.encode('utf-8')) 

Hoffe das hilft!

  • Wie suche und erstelle ich utf-8 Sonderzeichen in Python?
  • Python: UnicodeDecodeError: 'utf8' codec kann das Byte 0xc0 nicht in Position 0 decodieren: ungültiges Startbyte
  • Lesen Sie viele csv-Datei und schreiben Sie es auf die Codierung zu utf8 mit Python
  • Python - Python 3.1 kann nicht mit UTF-16 codierten Dateien umgehen?
  • Python aus einer Datei lesen und auf utf-8 speichern
  • Wie kann ich die Byte-Länge eines utf-8-codierten Strings in Python bestimmen?
  • Konvertieren von Text mit COMBINING DIAERESIS zu utf-8
  • Was ist der Unterschied zwischen u '' Präfix und Unicode () in Python?
  • Kodierung in Tupel Python
  • Wie drucken Sie UTF-8 codierten Text an die Konsole in Python <3?
  • UnicodeDecodeError in Python beim Lesen einer Datei, wie man den Fehler ignoriert und zur nächsten Zeile springt?
  • Python ist die beste Programmiersprache der Welt.