Я работаю с внешними данными, которые закодированы в латинице 1. Итак, я добавил sitecustomize.py
и в нем добавил
sys.setdefaultencoding('latin_1')
Конечно, теперь работа со строками latin1 работает нормально.
Но в случае, если я столкнусь с чем-то, что не закодировано в латинице 1:
s=str(u'abc\u2013')
Я получаю UnicodeEncodeError: 'latin-1' codec can't encode character u'\u2013' in position 3: ordinal not in range(256)
Что бы я хотел, так это то, что некодируемые символы просто игнорировались бы, т.е. я получал бы это в приведенном выше примере s=='abc?'
, и делал бы это без явного вызова decode()
или encode
каждый раз, то есть не s. декодировать (..., «заменить») при каждом вызове.
Я пытался делать разные вещи с codecs.register_error
, но безрезультатно.
помогите пожалуйста?