Probleme mit urllib, utf-8 und dateinamen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
matsimoto
User
Beiträge: 2
Registriert: Dienstag 22. Januar 2008, 13:15

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
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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>
>>> 
matsimoto
User
Beiträge: 2
Registriert: Dienstag 22. Januar 2008, 13:15

vielen Dank, sieht gut aus!

Code: Alles auswählen

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