Hi,
ich habe einige Dateien und Ordner die mein Debian Mint (auf UTF-8 eingestellt) nicht lesen kann. Ein Ordner heißt z.b. bei interner Verarbeitung in Python "B<U+0084>ume" während es über die Konsole mit "tree | less" als "B\204ume" angezeigt wird. Im Prinzip stellt es ein "ä" dar. Wie bekomme ich das konvertiert?
Grüße Markus
Unicode control character konvertieren
Oh man bin ich Blind, Du hast Recht, kann man das nachträglich manipulieren?sma hat geschrieben:Das Zeichen U+0084 ist kein "ä", sondern ist nicht belegt. \204 ist die Oktaldarstellung von \x84 bzw. \u0084. Ein "ä" hat den Codepoint U+00E4. Da muss etwas schief gelaufen sein.
Stefan
Einfach die Datei umbenennen? Oder in Python ein `replace("\x84", "\xE4")` ausführen? Beachte aber, dass diese Zeichen gemäß des Datei-Encodings interpretiert werden.feldmaus hat geschrieben:Oh man bin ich Blind, Du hast Recht, kann man das nachträglich manipulieren?
Wenn du das Problem hast, dass du gar nicht einen Unicode-String mit \x84 drin bilden kannst, benutze z.B. dies:
Code: Alles auswählen
#encoding:utf-8
import codecs
def repair(exc):
if isinstance(exc, UnicodeDecodeError) and exc.object[exc.start:exc.end] == '\x84':
return u"ä", exc.end
raise exc
codecs.register_error("repair", repair)
print unicode("B\x84ume", errors="repair")