显然,在所有平台上进行排序的唯一方法是使用具有PyICU绑定的ICU库(在PyPI上为PyICU)。
在OS X:上sudo port install py26-pyicu
,请注意此处描述的错误:https ://svn.macports.org/ticket/23429(使用Macports的乐趣)。
不幸的是,严重缺乏PyICU的文档,但是我设法找出了它的完成方法:
import PyICU
collator = PyICU.Collator.createInstance(PyICU.Locale('pl_PL.UTF-8'))
print [i for i in sorted([u'a', u'z', u'?'], cmp=collator.compare)]
这使:
[u'a', u'?', u'z']
另一个优点-@bobince:它是线程安全的,因此在设置请求方式的语言环境时并非没有用。