UnicodeDecodeError: кодек' charmap ' не может декодировать байт X в позиции Y: отображение символов в



Я пытаюсь заставить программу Python 3 выполнить некоторые манипуляции с текстовым файлом, заполненным информацией. Однако при попытке прочитать файл я получаю следующую ошибку:



Traceback (most recent call last):
File "SCRIPT LOCATION", line NUMBER, in <module>
text = file.read()
File "C:Python31libencodingscp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 2907500: character maps to <undefined>


Если кто-нибудь может дать мне любую помощь, чтобы попытаться преодолеть эту проблему, я был бы очень благодарен.

12532   3  

3 ответов:

рассматриваемый файл не использует CP1252 кодировка. Он использует другую кодировку. Какой из них вы должны выяснить сами. Общие из них Latin-1 и UTF-8. Так как 0x90 на самом деле ничего не значит в Latin-1,UTF-8 (где 0x90 - это байт продолжения) более вероятно.

вы указываете кодировку при открытии файла:

file = open(filename, encoding="utf8")

как расширение к @LennartRegebro ответ:

если вы не можете сказать, какая кодировка это и решение выше не работает (это не utf8) и вы обнаружили, что просто догадываетесь-есть онлайн инструменты что вы могли бы использовать, чтобы определить, что кодирование это. Они не идеальны, но обычно работают просто отлично. После того, как вы выяснили кодирование вы должны быть в состоянии использовать решение выше.

EDIT: (скопировано из комментариев)

A довольно популярный текстовый редактор Sublime Text имеет команду для отображения кодировки, если она была установлена...

  1. на View ->Show Console (или Ctrl+')

enter image description here

  1. введите в поле внизу view.encoding() и надеяться на лучшее (я не смог получить ничего, кроме Undefined но, может быть, Вам повезет больше...)

enter image description here

просто добавить в случае file = open(filename, encoding="utf8") не работает попробуй file = open(filename, errors='ignore')

все хорошо

Comments

    Ничего не найдено.