代码之家  ›  专栏  ›  技术社区  ›  whitebear

UnicodeDecodeError:从测试脚本上传时,“utf-8”编解码器无法解码

  •  0
  • whitebear  · 技术社区  · 4 年前

    我正在制作测试脚本上传excel文件,

    def test_upload(self):
        c = Client()
        with open('_material/trick.xlsx') as fp:
            c.post('/cms/template/up', {'name': 'fred','content_file': fp})
    

    错误来了

    UnicodeDecodeError: 'utf-8' codec can't decode byte 0x85 in position 16: invalid start byte

    但是在html上传表单中,并没有出现任何错误。

    class UploadTemplateFileForm(BaseModelForm):
        content_file = forms.FileField(required=True)
    

    为什么会出现这种差异?

    0 回复  |  直到 4 年前
        1
  •  2
  •   Tim Roberts    4 年前

    .xlsx文件是二进制的(它们实际上是pkzip档案)。你必须这样做 open('_material/trick.xlsx','rb')