Кодек 'utf-8' не может декодировать байт 0xa0 в позиции 0: недопустимый начальный байт django
Итак, у меня есть переменная, содержащаяся в байтах, и я хочу сохранить ее в str. но как это сделать? Я пробовал разные способы, но всегда получал ошибку
кодек 'utf-8' не может декодировать байт 0xa0 в позиции 0: недопустимый начальный байт
я хочу сохранить результат шифрования файла в текстовый файл. так у меня будет доказательство того, что файл был зашифрован. вот мои способы 1:
def create_file(f):
response = HttpResponse(content_type="text/plain")
response['Content-Disposition'] = 'attachment; filename=file.txt'
filename = f
print(filename)
name_byte = codecs.decode(filename)
print(name_byte)
return response
мои пути 2 :
def create_file(enc):
with open("file.txt", "w", encoding="utf-8") as f:
enc = enc.decode('utf-8')
f.write(enc)
мои пути 3:
def create_file(f):
file = open("file.txt", "w")
f = f.decode('utf-8')
download = file.write(f)
file.close()
print(download)
return download
f = b'\xa0\x0e\xdc\x14' f - это результат работы encrypt
Если вы просто хотите записать всю строку в файл, то все, что вам нужно сделать, это преобразовать ее в строку.
Так это будет работать:
v = b'\xa0\x0e\xdc\x14'
with open("C:/test/output.txt", 'w') as file:
file.write(str(v))
В результате получается текстовый файл следующего вида:
Поэтому единственное, что вы можете сделать, это сохранить поток байтов как есть, используя режим двоичного файла:
v = b'\xa0\x0e\xdc\x14'
with open ('/path', 'wb') as fo:
fo.write(v)
То же самое касается отправки зашифрованного файла в качестве ответа Django:
response = HttpResponse(v, content_type="application/octet-stream")
response['Content-Disposition'] = 'attachment; filename=file.bin'