Попробуйте это по порядку:
(0) Убедитесь, что удаление слешей / галочек / и т. Д. Не приводит к разделению данных.Что за галочка?Пожалуйста, покажите свой код.Пожалуйста, покажите образец необработанных данных ... используйте print repr(sample_raw data)
и скопируйте / вставьте вывод в редактирование вашего вопроса.
(1) Существует старое правило: "Если кодировка файланеизвестно или заявлено как ISO-8859-1, это cp1252 "... откуда вы его взяли?Если он поступает из Западной Европы, Америки или любой другой страны / территории, говорящей по-английски, по-французски / по-испански, и не является UTF-8, то это, вероятно, cp1252
[Редактировать 2] Ваш байт ошибки 0x93 декодирует в U + 201C ЛЕВОЙ ДВОЙНОЙ ОТМЕТКИ ЦЕНЫ для всех кодировок cp1250 до cp1258 включительно ... на каком языке написан текст? [/ Edit 2]
(2) Сохраните файл (перед снятием галочки), затем откройте файл в браузере: выглядит ли он разумным?Что вы видите, когда нажимаете на Вид / Кодировка символов?
(3) Попробуйте chardet
Редактировать и еще несколько советов:
Как только вы узнаете, что такое кодировка (предположим, это cp1252):
(1) преобразует ваши входные данные в Unicode: uc = raw_data.decode('cp1252')
(2) обрабатывает данные (удалите косые черты / галочки / и т. д.) как Unicode: clean_uc = manipulate(uc)
(3) вам необходимо вывести данные в кодировке utf8: to_mongo = clean_uc.encode('utf8')
Примечание 1. Ваше сообщение об ошибке гласит «можетне декодировать байт 0x93 в позиции 1258 "... 1258 байт - это довольно длинный фрагмент текста;это разумно?Вы смотрели на данные, на которые он жалуется?Как?что вы видели?
Примечание 2: Пожалуйста, рассмотрите Python Unicode HOWTO и эту статью