Problem mit der Kodierung von Umlauten

Gast #4053941
Lesenswert?
• ▲
▼
Hallo zusammen,

ich hab in Python ein Problem mit der Kodierung von Texten.
Das Programm soll Texte verarbeiten. Dabei ist der Vergleich von Worten 
wichtig. Nun bin ich bei einem Text auf folgendes Problem gestoßen:
>>> 'glücklich' == 'glücklich'
False
>>> u'glücklich' == u'glücklich'
False
>>> 'ü' == 'ü'
False
>>> 'glücklich'.decode('utf-8')
u'glu\u0308cklich'
>>> 'glücklich'.decode('utf-8')
u'gl\xfccklich'

Das Beispiel ist stellvertretend für alle Umlaute in diesem Text.
Ich kenne mit leider mit Kodierungen nicht so sehr aus. Gibt es eine 
Möglichkeit das 'andere' ü in ein für mich bekanntes ü zu verwandeln?

Vielen Dank im Voraus
Liebe Grüße
Martin
#4053953
Lesenswert?
• ▲
▼
Du hast einen text im format ISO 8859-1 (extended ascii) und einen in 
UTF-8.

Speichere entweder alles im felben Format, wobei ich utf8 empfehle, oder 
ermittle die Kodierung im python script und convertiere es ensprechend. 
In python sind mir die funktionen encode und decode ein rätsel. Beim 
Konvertieren gibt es immer ein Quell und ein Zielvormat, die encode und 
decode funktionen enthalten aber nicht beide. Versuch mal die encode 
function, viel glück! Kodierungsprobleme sind immer die Hölle.
Gast #4053954
Lesenswert?
• ▲
▼
unicodedata.normalize() regelt:
1
>>> import unicodedata
2
>>> unicodedata.normalize('NFC', u'Glu\u0308cklich')
3
u'Gl\xfccklich'
4
>>> unicodedata.normalize('NFC', u'Gl\xfccklich')
5
u'Gl\xfccklich'
6
>>> unicodedata.normalize('NFC', u'Glu\u0308cklich') == unicodedata.normalize('NFC', u'Gl\xfccklich')
7
True

Rest steht in der Doku.

HTH

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.