Python3 изменил поведение Unicode, чтобы запретить суррогатные пары, а python2 — нет.
Но он не дает решения о том, как удалить суррогатные пары в python2 или как сделать суррогатный побег.
Пример Python3:
>>> a = b'\xed\xa0\xbd\xe4\xbd\xa0\xe5\xa5\xbd'
>>> a.decode('utf-8', 'surrogateescape')
'\udced\udca0\udcbd你好'
>>> a.decode('utf-8', 'ignore')
'你好'
«\xed\xa0\xbd» здесь не является правильными символами utf-8. И я хочу игнорировать их или убежать от них.
Можно ли сделать то же самое в python2?