Как перевести строчку из байтов в кириллицу?
Есть строка из байтов - 65, 112, 112, 97, 114, 116, 97, 109, 101, 110, 116, 61, 0, 0, 0, 91, 48, 44, 32, 34, 202, 226, 224, 240, 242, 232, 240, 224, 32, 185, 52, 34, 44, 32, 34, 77, 117, 98, 97, 114, 105, 122, 95, 73, 98, 114, 97, 104, 105, 109, 111, 118, 34, 44, 32, 34, 45, 34, 44, 32, 51, 44, 32, 50, 48, 48, 48, 44, 32, 52, 48, 48, 48, 48, 48, 93
Эту строку нужно перевести в текст, должно получиться так - **ЧAppartament=[0, "Квартира №4", "Mubariz_Ibrahimov", "-", 3, 2000, 400000] **
Не понимаю как ее записать, чтобы decode() не выводило ошибку. Помогите
Ответы (1 шт):
Автор решения: maestro
→ Ссылка
Нужно всего лишь найти правильную кодировку.
b = bytes([65, 112, 112, 97, 114, 116, 97, 109, 101, 110, 116, 61, 0, 0, 0, 91, 48, 44, 32, 34, 202, 226, 224, 240, 242, 232, 240, 224, 32, 185, 52, 34, 44, 32, 34, 77, 117, 98, 97, 114, 105, 122, 95, 73, 98, 114, 97, 104, 105, 109, 111, 118, 34, 44, 32, 34, 45, 34, 44, 32, 51, 44, 32, 50, 48, 48, 48, 44, 32, 52, 48, 48, 48, 48, 48, 93])
codings = 'ascii,big5,big5hkscs,cp037,cp273,cp424,cp437,cp500,cp720,cp737,cp775,cp850,cp852,cp855,cp856,cp857,cp858,cp860,cp861,cp862,cp863,cp864,cp865,cp866,cp869,cp874,cp875,cp932,cp949,cp950,cp1006,cp1026,cp1125,cp1140,cp1250,cp1251,cp1252,cp1253,cp1254,cp1255,cp1256,cp1257,cp1258,euc_jp,euc_jis_2004,euc_jisx0213,euc_kr,gb2312,gbk,gb18030,hz,iso2022_jp,iso2022_jp_1,iso2022_jp_2,iso2022_jp_2004,iso2022_jp_3,iso2022_jp_ext,iso2022_kr,latin_1,iso8859_2,iso8859_3,iso8859_4,iso8859_5,iso8859_6,iso8859_7,iso8859_8,iso8859_9,iso8859_10,iso8859_11,iso8859_13,iso8859_14,iso8859_15,iso8859_16,johab,koi8_r'
codings = codings.split(',')
# Пробуем декодировать текст во всех возможных кодировках:
for coding in codings:
try:
line = b.decode(coding)
print(line, 'coding=', coding)
except:
...
# Окончательно выбираем подходящую кодировку:
print(b.decode('cp1251'))
После правки
Там совсем другой текст:
Appartament=[0, "Квартира №4", "Mubariz_Ibrahimov", "-", 3, 2000, 400000]