Wie kann ich einen String in Python 2 falten?

Python 3.3 fügt die casefold Methode dem Str-Typ hinzu, aber in 2.x habe ich nichts. Was ist der beste Weg, um das zu umgehen?

3 Solutions collect form web for “Wie kann ich einen String in Python 2 falten?”

Check out py2casefold .

 >>> from py2casefold import casefold >>> print casefold(u"tschüß") tschüss >>> casefold(u"ΣίσυφοςfiÆ") == casefold(u"ΣΊΣΥΦΟσFIæ") == u"σίσυφοσfiæ" True 

Es gibt einen Thread hier, der einige der Probleme abdeckt (aber vielleicht nicht alle auflösen), können Sie beurteilen, ob es für das, was Sie brauchen, geeignet ist. Wenn das nicht gut ist, dann gibt es einige nützliche Tipps für die Implementierung Fall Fall Falten auf der W3C Website hier .

Wenn PyICU bereits installiert ist; Sie können es verwenden, um casefold() zu definieren. Mit den gleichen Beispiel-Strings wie in @Russ 'Antwort :

 >>> import icu >>> casefold = lambda u: unicode(icu.UnicodeString(u).foldCase()) >>> print casefold(u"tschüß") tschüss >>> casefold(u"ΣίσυφοςfiÆ") == casefold(u"ΣΊΣΥΦΟσFIæ") == u"σίσυφοσfiæ" True >>> icu.UNICODE_VERSION '6.3' >>> import unicodedata >>> unicodedata.unidata_version '5.2.0' 

Das Ergebnis kann von der Version des Unicode-Standards abhängen .

  • Google App Engine: UnicodeDecodeError: 'ascii' Codec kann das Byte 0xe2 nicht in Position 48 decodieren: ordinal nicht im Bereich (128)
  • Was auf der Erde ist die Unicode-Nummer?
  • Kann nicht unicode url mit python öffnen
  • Python - wie man Datei aus Dateisystem mit einem Unicode-Dateinamen sendet?
  • Python - Problem mit akzentuierten Zeichen beim Abkratzen von Daten von der Website
  • Ersetzen Sie Nicht-ASCII-Zeichen durch ein einzelnes Feld
  • Lesen von Unicode-Dateidaten mit BOM-Zeichen in Python
  • Enthought - matplotlib (Probleme mit plot () Funktion)
  • UnicodeDecodeError: 'ascii' Codec kann das Byte in 0xc3 nicht in Position 304 decodieren: Ordinal nicht im Bereich (128)
  • Warnung: Einige Zeichen konnten nicht decodiert werden und wurden durch ERSATZZEICHEN ersetzt
  • Warum druckt ein Unicode obj in ipython kein Fehler?
  • Python ist die beste Programmiersprache der Welt.