Unicode Problem in python sourcecode

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Mittwoch 4. Mai 2011, 12:03

Hallo,

Probiert mal folgendes:

Code: Alles auswählen

s = ur"Oh, here is a backslash before \unicode."
In Py 2.7 erscheint dabei nachfolgende Meldung:
SyntaxError: (unicode error) 'rawunicodeescape' codec can't decode bytes in position 11-12: truncated \uXXXX

Abhilfe schafft im obigen Beispiel die Modifizierung des Codes:

Code: Alles auswählen

s = u"Oh, here is a backslash before \\unicode."
Bei dem nächsten Beispiel wird es allerdings schwieriger:

Code: Alles auswählen

s = ur"c:\that\is\a\new\unicode\path"
Wie würdet ihr nun das oben geschilderte Unicode-Problem in Py 2.x am besten lösen? Vielleicht wird es ja auch schon in Py 2.7.2 gelöst, falls es diese Version geben wird.
Ab Py 3.2 gibt es damit kein Problem mehr (vielleicht auch schon Py 3.1, habe ich aber nicht getestet).

Grüße HarryH
Gruß, Harry
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Mittwoch 4. Mai 2011, 12:33

HarryH hat geschrieben:Wie würdet ihr nun das oben geschilderte Unicode-Problem in Py 2.x am besten lösen?
Bei Pfaden:

Code: Alles auswählen

os.path.join(u'my', u'unicode', u'path')
Ansonsten musst du eben auf den Raw-String verzichten (wie bei deiner Abhilfe).
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
Antworten