У меня есть таблица Excel, которую я читаю, в которой содержатся некоторые знаки.
Когда я пытаюсь прочитать его при использовании модуля xlrd, я получаю следующую ошибку:
x = table.cell_value(row, col)
x = x.decode("ISO-8859-1")
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3' in position 0: ordinal not in range(128)
Если я переписываю это на x.encode('utf-8'), он перестает бросать ошибку, но, к сожалению, когда я затем записываю данные где-то в другом месте (как латинский-1), знаки £ все искажаются.
Как я могу исправить это и правильно прочитать знаки £?
--- UPDATE ---
Некоторые читатели предположили, что мне вообще не нужно его декодировать, или что я могу просто закодировать его на латинском языке 1, когда мне это нужно. Проблема заключается в том, что мне нужно вначале записать данные в CSV файл, и, похоже, он обращается к необработанным строкам.
Если я вообще не кодирую или не декодирую данные, это происходит (после того, как я добавил строку в массив, называемый элементами):
for item in items:
#item = [x.encode('latin-1') for x in item]
cleancsv.writerow(item)
File "clean_up_barnet.py", line 104, in <module>
cleancsv.writerow(item)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2022' in position 43: ordinal not in range(128)
Я получаю ту же ошибку, даже если я раскомментирую строку Latin-1.