import unicodedata
from collections import OrderedDict
dict = {'United States': 'United States', 'Spain': 'Spain', 'England':
    'England', '\xc3\x89gypt': '\xc3\x89gypt'}
import locale
locale.setlocale(locale.LC_ALL, 'fr_FR')
print(OrderedDict(sorted(list(dict.items()), cmp=lambda a, b: locale.strcoll(
    unicodedata.normalize('NFD', str(a)[0]).encode('ASCII', 'ignore'),
    unicodedata.normalize('NFD', str(b)[0]).encode('ASCII', 'ignore')))))
Sort dictionary by key using locale/collation