Python UnicodeDecodeError:“ utf-8”编解码器无法解码位置0的字节0xff:无效的起始字节

问题描述

我正在使用python 3.6在ubuntu 18.04上收到此错误

  File "/home/sw/miniconda3/envs/py36/lib/python3.6/codecs.py",line 644,in __next__
    line = self.readline()
  File "/home/sw/miniconda3/envs/py36/lib/python3.6/codecs.py",line 557,in readline
    data = self.read(readsize,firstline=True)
  File "/home/sw/miniconda3/envs/py36/lib/python3.6/codecs.py",line 503,in read
    newchars,decodedbytes = self.decode(data,self.errors)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

我尝试使用utf-16,latin1编码,但没有任何效果。任何帮助表示赞赏。

解决方法

UTF-16 / ucs2-这些不是有用的编码,只是它们可能来自Java或某些MicroSoft Office产品。 前2个字节是“ BOM”,您可能必须 手动将其跳过。

目标是告诉python / mysql /无论该文件被编码为“ utf-16”还是“ ucs2”,这取决于该语言可用的语言。