Добрый день Считываю utf8-файл и вывожу в консоль. При попытке вывести букву "И" возникает ошибка:
File "I:\ProgramFile\Anaconda\lib\encodings\cp1251.py", line 15, in decode
return codecs.charmap_decode(input,errors,decoding_table)
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 1: character maps to < undefined >
Воспроизводится на вот таком примере:
test_text_1 = "Задача\n"
test_text_2 = "Итератор"
file = open('temp.txt', 'w', encoding='utf-8')
file.write(test_text_1)
file.write(test_text_2)
file.close()
text = open('temp.txt', 'rb')
for byte_code in text:
print(byte_code.strip())
test_text = byte_code.decode('cp1251')
print(test_text.strip())
Первое слово выводится нормально, а на втором - ошибка. Никак не могу найти способ побороть проблему.
UPD: Видимо я описал проблему слишком широко, исправляюсь:
Как конвертировать "И" из utf-8 в cp1251? Для "А" всё работает, а для "И" - нет.
Код:
byte1 = 'А'.encode('utf-8')
byte2 = 'И'.encode('utf-8')
print(byte1, byte2)
test1 = byte1.decode('cp1251')
print(test1)
test2 = byte2.decode('cp1251')
print(test2)
'текст'.encode('cp1251'). В итоге получаются байты, которые уже можно применить куда вам нужно. – insolor Apr 25 '16 at 22:18