kgm wrote:
Hi Martin,
Nenne einen Hashalgorithmus, der als Parameter das encoding
bevor ich nach einen umöglichen Algorithmus suche, hätte ich mich eher an die Empfehlungen von unicode.org gehalten ;-)
Programs should always compare canonical-equivalent Unicode strings as equal. One of the easiest ways to do this is to use a normalized form for the strings: if strings are transformed into their normalized forms, then canonical-equivalent ones will also have precisely the same binary representation.
Das bezieht sich aber auf was ganz anderes, nämlich die Tatsache, daß es bei zusammengesetzten Zeichen (wie z.B. Umlauten) (manchmal) zwei Möglichkeiten gibt, diese in Unicode darzustellen. 1) Als vorgefertiges Zeichen (z.B. ü als U+00fc) 2) Als Basiszeichen gefolgt vom Accent-Zeichen (dem sogenannten "Non-spacing mark", also ein Zeichen, das selber keinen Platz braucht, aber das vorherigen Zeichen überlappt, bzw. modifiziert) (das ü als U+0075 U+0308) BTW, zum Zerlegen und Zusammensetzen von zusammengesetzten Zeichen gibts in Python 2.3 unicodedata.normalize:
import unicodedata unicodedata.normalize("NFD", u"ü") u'u\u0308' unicodedata.normalize("NFC", u"u\u0308") u'\xfc'
Mit Encoding hat das ganze *überhaupt nix* zu tun. Bis demnächst, Walter Dörwald _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de