Seite 1 von 1

Probleme mit urllib, utf-8 und dateinamen

Verfasst: Dienstag 22. Januar 2008, 13:27
von matsimoto
Hallo,

ich möchte über WebDAV ein File von einem WebDavserver holen und auf der lokalen Platte speichern.

Das läuft auch ohne größere Probleme, bis der Dateiname einen Umlaut enthält.
Beispiel:
Die Auflistung der Serverfiles gibt mir eine Datei mit der Bezeichnung:
benutzer%C3%BCbersicht+test.doc was soviel heisst wie "benutzerübersicht test.doc".

Diese datei lokal zu speichern unter Erhalt des Dateinamens auf meiner UTF-8 Linux Büchse bedeutet diesen String in einen UTF-8 Dateinamen für python umzuwandeln, aber alles was ich versuche z.B.:

Code: Alles auswählen

urllib.unquote_plus(benutzer%C3%BCbersicht+test.doc)
liefert immer Ergebnisse, die ich nicht in open() verwenden kann.

Was mache ich falsch ?

Ciao
matsimoto

Verfasst: Dienstag 22. Januar 2008, 14:12
von EyDu
Auf meinem XP funktioniert es so, ich wüsste spontan nicht, warum es auf Linux nicht auch laufen sollte:

Code: Alles auswählen

>>> import urllib
>>> urllib.unquote_plus("benutzer%C3%BCbersicht+test.doc")
'benutzer\xc3\xbcbersicht test.doc'
>>> unicode('benutzer\xc3\xbcbersicht test.doc', "utf-8")
u'benutzer\xfcbersicht test.doc'
>>> open(u'benutzer\xfcbersicht test.doc', "wb")
<open file u'benutzer\xfcbersicht test.doc', mode 'wb' at 0x00CA9A88>
>>> 

Verfasst: Dienstag 22. Januar 2008, 14:35
von matsimoto
vielen Dank, sieht gut aus!

Code: Alles auswählen

unicode('benutzer\xc3\xbcbersicht test.doc', "utf-8")
hat mir gefehlt.