SURROGATE_PAIR = re.compile('[\ud800-\udbff][\udc00-\udfff]', re.UNICODE)

def unicodeLen(s):
    return len(SURROGATE_PAIR.sub('.', s))
Python: получение правильной длины строки, если она содержит суррогатные пары