saving octet-stream png file

Chris Angelico rosuav at gmail.com
Fri Aug 19 13:24:28 EDT 2016


On Sat, Aug 20, 2016 at 3:10 AM, Larry Martell <larry.martell at gmail.com> wrote:
> I have some python code (part of a django app) that processes a
> request that contains a png file. The request is send with
> content_type = 'application/octet-stream'
>
> In the python code I want to write this data to a file and still have
> it still be a valid png file.
>
> The data I get looks like this:
>
> u'\ufffdPNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x01\ufffd\x00\x00\x01\ufffd
> ......'
>
> If I try and write that to a file it fails with a UnicodeEncodeError.
> If I write it with encode('utf8') it writes the file, but then it's no
> longer a valid png file.
>
> Anyone know how I can do this?

At that point, you've already lost information. Each U+FFFD (shown as
"\ufffd" above) is a marker saying "a byte here was not valid UTF-8"
(or whatever was being used). Something somewhere took the .png file's
bytes and tried to interpret them as text, which they're not.

What sent you that data? How did you receive it?

ChrisA



More information about the Python-list mailing list