Я читаю серию файлов исходного кода, используя Python, и запускаю ошибку спецификации Unicode. Здесь мой код:
bytes = min(32, os.path.getsize(filename))
raw = open(filename, 'rb').read(bytes)
result = chardet.detect(raw)
encoding = result['encoding']
infile = open(filename, mode, encoding=encoding)
data = infile.read()
infile.close()
print(data)
Как вы можете видеть, я обнаруживаю кодировку с помощью chardet
, затем читаю файл в памяти и пытаюсь его распечатать. Заявление о печати выходит из строя в файлах Unicode, содержащих спецификацию с ошибкой:
UnicodeEncodeError: кодек charmap не может кодировать символы в позиции 0-2:
символьные карты в <undefined>
Я предполагаю, что он пытается декодировать спецификацию с использованием набора символов по умолчанию, и он не работает. Как удалить спецификацию из строки, чтобы предотвратить это?