jpeg в код - получил "qq\xe6/\xeb\x89\xb8\x1b\x11\xa4\x9e\xff", что это за кодировка?
у меня есть 123456.jpeg файл и я с ним сделал следующее:
with open('123456.jpg','rb') as fil:
byte = fil.read()
print(byte)
with open('23.txt','w') as fil:
fil.write(str(byte))
получил очень много вот такого шифра:
x93\xfc$J\xd4\x1aQ\xb1.\x05\x05\x06\x05y\xda;6\xb0\x01\xd0+\xf4\x89\x05X\xb9\xa0\xd9\xd5y \xf4\x8eY\x16\xa6\xd5\xfd.\xef|3\xf2?,\xfc_\xd5\x05\xf39\xbet\xcf\x7f\xfe\xf3\xdf\xff\x00\xbc\n2\xd8$}_\xd7m@H\x1eI=\xff\x00\xfb\xcc qq\xe6/\xeb\x89\xb8\x1b\x11\xa4\x9e\xff\x00\xfd\xe7\xbf\xff\x00y\xef\xff\x00\xde2R6\xabk\xfa\xech\x90a\xe4\x0cR\x8cU\xd5\xf5\x7f\\\x18ub\xf7\xce\x99\xef\xff\x00\xde{\xff\x00\xf7\x8a\xd0,\r\x1fW\xf5\xc8O\x14\xac\xdf\xa4\xf7\xff\x00\xef\x13l\xc3G\xa2\xfe\xbb~"@\xf5\'\xbf\xff\x00y\xef\xff\x00\xde\x12\x0e\xa4"y_\xeb\x88\x00\x00\x0
у меня 2 вопроса:
- что это за кодировка ? (имею ввиду ...........\xf4\x8eY\x16\xa6\xd5\xfd.\xef|3\.................)
- как конвертировать это \xf4\x8eY\x16\xa6\xd5\xfd.\xef|3\ обратно в .jpeg файл ?
Ответы (1 шт):
Байтовая кодировка.
Чтобы такую расшифровать, можно воспользоваться b"строка-в-байтовом-представлении".decode("utf-8") что вернёт строку в правильной кодировке - utf-8
Но там скорей всего будет что то не понятное. Ведь это обычные байты.
Чтобы превратить данные в .jpeg файл, просто запишем их в байтовой кодировке, ведь формально это он и есть, только в вот таком представлении:
with open('23.jpeg','wb') as fil:
fil.write(byte)
Вот и всё, получаем нормальную картинку.