Hi,
ich hab hier ein kleines Problemchen mit einem Zeichensatz in meinem String.
Habe einen String der mit 'nem laut wiki Geschütztes Leerzeichen versehen ist.
Mit Python bekomme ich den nicht gestriped.
Und einfach .strip('Geschütztes Leerzeichen') hat leider auch nicht geklappt.
Ich hoffe ihr könnt mir dabei weiterhelfen.
Mit freundlichem Gruß
Zack
strip of 'Geschütztes Leerzeichen'
Nun Du musst wissen wie Dein geschütztes Leerzeichen kodiert ist. Am besten Du arbeitest mit Unicode, denn `strip()` funktioniert nicht wie gewünscht wenn das entsprechende Zeichen mit mehr als einem Byte kodiert wird.
Wenn du mit "geschütztes Zeichen" die HTML Darstellung meinst, dann würde ich das mit einem replace machen.
Vielleicht gibt es auch Module die alle HTML Sondercodes entsprechend interpretieren können.
Hab mich aber bisher noch nicht nach sowas umgesehen.
Code: Alles auswählen
In [23]: " Foo Bar".replace(" "," ").strip()
Out[23]: 'Foo Bar'
Hab mich aber bisher noch nicht nach sowas umgesehen.
haha danke euch!
Zap dein beispiel hat mich weit voran gebracht.
Und mit Blackjacks Unicode Suchbegriff hab ich mir dann den Rest zusammen gedeixelt.
Das ist mein aktuelles Ergebnis.
Vielen denk euch beiden
Mit freundlichen und zufriedenen Grüßen
Zack
Zap dein beispiel hat mich weit voran gebracht.
Und mit Blackjacks Unicode Suchbegriff hab ich mir dann den Rest zusammen gedeixelt.
Code: Alles auswählen
mystring.replace("\xA0"," ").strip()
Vielen denk euch beiden
Mit freundlichen und zufriedenen Grüßen
Zack
Wie mitsuhiko schon sagt, ist es suboptimal, und du musst auch gar nicht suchen und ersetzen, strip funktioniert auch mit geschützten Leerzeichen.Das ist mein aktuelles Ergebnis.
Das Problem ist, dass dein String kein Unicodestring ist, und somit nur eine Folge Bytes, bei denen nicht jedes byte eindeutig einem Zeichen zuzuordnen ist (du kennst die ganzen umlautfehler im Internet).
wandele deinen String in unicode um: (encoding latin1 hab ich geraten)
Code: Alles auswählen
myunicode = mystring.decode('latin1')
print myunicode
print myunicode.strip()