![](https://secure.gravatar.com/avatar/61a5a5472eaacd2879fd8827761e5317.jpg?s=120&d=mm&r=g)
Hallo, ich habe ein kleines Problem mit dem Sortieren von Unicode. Ich gebe mal ein kleines Beispiel (Python 2.3.3, deutsches Windows XP): ########################### #! Python # -*- coding: iso-8859-1 -*- import locale locale.setlocale(locale.LC_ALL,"") def sortDeutsch(a,b): return locale.strcoll(a, b) s = 'überall Üxeküll Übermacht übernachten über übermenschlich' print "Sort according to German Locale:" sList =s.split() sList.sort(sortDeutsch) for x in sList: print x print '--------' print "Same with Unicode:" s = unicode(s, 'latin-1') sList = s.split() sList.sort(sortDeutsch) for x in sList: print x.encode('latin-1') ########################### Nach der Umwandlung in Unicode wird leider falsch sortiert (= nicht nach den deutschen Konventionen). 'über' wird falsch einsortiert. a) warum eigentlich? b) wie sortiert man am besten und effektivsten Unicode entsprechend Locale? Matthias _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
![](https://secure.gravatar.com/avatar/3acb8bae5a2b5a28f6fe522a4ea9b873.jpg?s=120&d=mm&r=g)
Matthias Huening wrote:
a) warum eigentlich?
Ich kann das unter Linux nicht reproduzieren; da sortiert beides gleich. Eigentlich müsste es unter Windows auch funktionieren - ist vielleicht ein Windows-Bug. Das müsste man mal im Debugger untersuchen.
b) wie sortiert man am besten und effektivsten Unicode entsprechend Locale?
Genau so. Eigentlich müsste man locale.strxfrm nehmen, wenn es effizient sein soll; das ist aber leider nicht für Unicode-Strings unterstützt (Patches hierzu sind willkommen). Ciao, Martin _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
![](https://secure.gravatar.com/avatar/61a5a5472eaacd2879fd8827761e5317.jpg?s=120&d=mm&r=g)
"Martin v. Löwis" <martin@v.loewis.de> wrote in news:41488C34.2040104 @v.loewis.de:
Matthias Huening wrote:
a) warum eigentlich?
Ich kann das unter Linux nicht reproduzieren; da sortiert beides gleich. Eigentlich müsste es unter Windows auch funktionieren - ist vielleicht ein Windows-Bug.
Hhmm - Mist! Kann mal irgendjemand anders das unter Windows ausprobieren um zu sehen, ob das ein reproduzierbarer Fehler ist? Wäre nett. Denn wenn's so ist, dann brauche ich nicht mehr weiter nach einer Lösung zu suchen... Dank & Gruss, Matthias _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
![](https://secure.gravatar.com/avatar/ad4817ce0541a5502bd8471fd1ca54c4.jpg?s=120&d=mm&r=g)
Hallo! On 15 Sep 2004 at 19:45, Matthias Huening wrote:
Kann mal irgendjemand anders das unter Windows ausprobieren um zu sehen, ob das ein reproduzierbarer Fehler ist? Wäre nett. Denn wenn's so ist,
Ja, ist hier unter XP SP1 reproduzierbar. Workaround (wenn auch wenig befriedigend): Hänge jedem Wort vorm Sortieren ein Leerzeichen (oder irgendein anderes Zeichen < 'A') an. Jan _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
![](https://secure.gravatar.com/avatar/61a5a5472eaacd2879fd8827761e5317.jpg?s=120&d=mm&r=g)
"Jan Voges" <jan.voges@gmx.de> wrote in news:4148BF41.23054.225594D@localhost:
Ja, ist hier unter XP SP1 reproduzierbar. Workaround (wenn auch wenig befriedigend): Hänge jedem Wort vorm Sortieren ein Leerzeichen (oder irgendein anderes Zeichen < 'A') an.
Das ist zwar sehr, sehr unschön, aber es funktioniert wenigstens (obwohl ich nicht verstehe warum). Dank (auch an Martin und Thomas). Matthias _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
participants (3)
-
"Martin v. Löwis"
-
Jan Voges
-
Matthias Huening