我在OSX上以及Linux上使用Python 2.5.1和2.6.5中的unicode排序对排序列表有问题.
import locale
locale.setlocale(locale.LC_ALL, 'pl_PL.UTF-8')
print [i for i in sorted([u'a', u'z', u'?'], cmp=locale.strcoll)]
Run Code Online (Sandbox Code Playgroud)
哪个应该打印:
[u'a', u'?', u'z']
Run Code Online (Sandbox Code Playgroud)
而是打印出来:
[u'a', u'z', u'?']
Run Code Online (Sandbox Code Playgroud)
总结一下 - 看起来好像strcoll坏了.尝试使用各种类型的变量(fe.非unicode编码的字符串).
我做错了什么?
此致,Tomasz Kopczuk.