Python:unicode .encode,可以在不可编码的字符上调用函数吗?

时间:2013-05-06 13:01:57

标签: python unicode encoding

我有一个uncode的文本,我想用latin-1编码。某些字符无法编码。如果我使用带有“replace”参数的encode,我会得到问号标签字符,但是,有没有办法调用自定义函数来替换字符?

例如,我想将所有可能的字符转换为latin-1,并在不可编码的字符上调用unidecode.unidecode()。这可能吗?

1 个答案:

答案 0 :(得分:5)

您可以使用codecs.register_error('myerrorhandler', function)创建自己的错误处理程序。

>>> import codecs
>>> codecs.register_error('silly', lambda e: ('X', e.start+1))
>>> 'foöbar'.encode('ascii', 'silly')
b'foXbar'
>>>