===========
Utilities
===========
    >>> from zope.component import getUtility, provideUtility

Characters
    >>> from collective.collection.alphabetic.interfaces import ICharacters
    >>> from collective.collection.alphabetic.utility.character import Characters
    >>> provideUtility(Characters(), provides=ICharacters)
    >>> characters = getUtility(ICharacters)
    >>> characters(None, False)
    
    >>> characters(None, True)
    [u'A', u'B', u'C', u'D', u'E', u'F', u'G', u'H', u'I', u'J', u'K', u'L', u'M', u'N', u'O', u'P', u'Q', u'R', u'S', u'T', u'U', u'V', u'W', u'X', u'Y', u'Z']
    >>> a = u"Ä"
    >>> a
    u'\xc3\x84'
    >>> a = unicode('Ä', 'utf-8')
    >>> a
    u'\xc4'
    >>> a.encode('utf-8')
    '\xc3\x84'
    >>> additionals = [unicode("Ä", 'utf-8'), unicode("Ö", 'utf-8'), unicode("Å", 'utf-8')]
    >>> characters(additionals, False)
    [u'\xc4', u'\xd6', u'\xc5']
    >>> characters(additionals, True)
    [u'A', u'B', u'C', u'D', u'E', u'F', u'G', u'H', u'I', u'J', u'K', u'L', u'M', u'N', u'O', u'P', u'Q', u'R', u'S', u'T', u'U', u'V', u'W', u'X', u'Y', u'Z', u'\xc4', u'\xd6', u'\xc5']

CharacterTokens
    >>> from collective.collection.alphabetic.interfaces import ICharacterTokens
    >>> from collective.collection.alphabetic.utility.character import CharacterTokens
    >>> provideUtility(CharacterTokens(), provides=ICharacterTokens)
    >>> character_tokens = getUtility(ICharacterTokens)
    >>> tokens = u'aABÄäÖ , . -'
    >>> character_tokens(tokens, False)
    (u'A', u'B', u'\xc3', u'\x84', u'\xa4', u'\x96', u',', u'.', u'-')
    >>> character_tokens(tokens, True)
    (u'\xc3', u'\x84', u'\xa4', u'\x96', u',', u'.', u'-')
