def strip_po(s):
    return ''.join(x for x in s if unicodedata.category(x) != 'Po')

def fix_space(s):
    return ' '.join(s.split())
s = (
    'A string, with characters \xb5, \xe6, \xc5, \xc7, \xdf,... Some    whitespace  confusion  ?'
    )
print(fix_space(strip_po(s)))
Strip Non alpha numeric characters from string in python but keeping special characters