Python Django UnicodeDecodeError“;utf-8 can';t解码0位置的字节0x89“;发送base64编码字符串时

Python Django UnicodeDecodeError“;utf-8 can';t解码0位置的字节0x89“;发送base64编码字符串时,python,django,encoding,utf-8,base64,Python,Django,Encoding,Utf 8,Base64,我正在发送带有以下JavaScript代码的base64编码字符串: decodeURIComponent(escape(window.btoa(body.profile_image))) 在后端,我使用的是来自的Base64ImageField 当我从客户端发送图像时,它抛出错误500:internalserver Error,并显示以下消息: Traceback (most recent call last): File "/app/.heroku/python/lib/python3

我正在发送带有以下JavaScript代码的base64编码字符串:

decodeURIComponent(escape(window.btoa(body.profile_image)))
在后端,我使用的是来自的Base64ImageField

当我从客户端发送图像时,它抛出错误500:internalserver Error,并显示以下消息:

Traceback (most recent call last):
  File "/app/.heroku/python/lib/python3.5/site-packages/django/core/handlers/exception.py", line 39, in inner
    response = get_response(request)
  File "/app/.heroku/python/lib/python3.5/site-packages/django/core/handlers/base.py", line 217, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/app/.heroku/python/lib/python3.5/site-packages/django/core/handlers/base.py", line 215, in _get_response
    response = response.render()
  File "/app/.heroku/python/lib/python3.5/site-packages/django/template/response.py", line 109, in render
    self.content = self.rendered_content
  File "/app/.heroku/python/lib/python3.5/site-packages/rest_framework/response.py", line 72, in rendered_content
    ret = renderer.render(self.data, accepted_media_type, context)
    separators=separators
  File "/app/.heroku/python/lib/python3.5/site-packages/rest_framework/renderers.py", line 103, in render
  File "/app/.heroku/python/lib/python3.5/json/__init__.py", line 237, in dumps
    **kw).encode(obj)
    chunks = self.iterencode(o, _one_shot=True)
  File "/app/.heroku/python/lib/python3.5/json/encoder.py", line 256, in iterencode
  File "/app/.heroku/python/lib/python3.5/json/encoder.py", line 198, in encode
    return _iterencode(o, 0)
  File "/app/.heroku/python/lib/python3.5/site-packages/rest_framework/utils/encoders.py", line 54, in default
    return obj.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte
只要我读过-我需要将我的图像编码到base64,然后base64图像字段将负责解码。真正令人惊讶的是,图像被更新了,但仍然抛出错误,这真的很奇怪。
我尝试了一些其他编码,但它仍然抛出错误500

该字段是否将图像保存为数据库中的Base64文本?如果是这样,不要使用它,根本不要将文件保存到数据库中。REST响应处理程序无法将数据解码为UTF-8,可能是图像。也许您需要教序列化程序如何将图像作为Base64数据返回?(不知道如何处理您正在使用的任何Django扩展)。
Traceback (most recent call last):
  File "/app/.heroku/python/lib/python3.5/site-packages/django/core/handlers/exception.py", line 39, in inner
    response = get_response(request)
  File "/app/.heroku/python/lib/python3.5/site-packages/django/core/handlers/base.py", line 217, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/app/.heroku/python/lib/python3.5/site-packages/django/core/handlers/base.py", line 215, in _get_response
    response = response.render()
  File "/app/.heroku/python/lib/python3.5/site-packages/django/template/response.py", line 109, in render
    self.content = self.rendered_content
  File "/app/.heroku/python/lib/python3.5/site-packages/rest_framework/response.py", line 72, in rendered_content
    ret = renderer.render(self.data, accepted_media_type, context)
    separators=separators
  File "/app/.heroku/python/lib/python3.5/site-packages/rest_framework/renderers.py", line 103, in render
  File "/app/.heroku/python/lib/python3.5/json/__init__.py", line 237, in dumps
    **kw).encode(obj)
    chunks = self.iterencode(o, _one_shot=True)
  File "/app/.heroku/python/lib/python3.5/json/encoder.py", line 256, in iterencode
  File "/app/.heroku/python/lib/python3.5/json/encoder.py", line 198, in encode
    return _iterencode(o, 0)
  File "/app/.heroku/python/lib/python3.5/site-packages/rest_framework/utils/encoders.py", line 54, in default
    return obj.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte