The following code is ignoring the locale and Égypt goes at the end, what\'s wrong?
dict = {\"United States\": \"United States\", \"Spain\" : \"Spain\", \"Englan
Consider the following...
import unicodedata
from collections import OrderedDict
dict = {"United States": "United States", "Spain" : "Spain", "England": "England", "Égypt": "Égypt"}
import locale
# using your default locale (user settings)
locale.setlocale(locale.LC_ALL,"fr_FR")
print OrderedDict(sorted(dict.items(),cmp= lambda a,b: locale.strcoll(unicodedata.normalize('NFD', unicode(a)[0]).encode('ASCII', 'ignore'),
unicodedata.normalize('NFD', unicode(b)[0]).encode('ASCII', 'ignore'))))