On Sat, Aug 20, 2016 at 3:10 AM, Larry Martell <larry.mart...@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 -- https://mail.python.org/mailman/listinfo/python-list