【发布时间】:2020-09-05 00:37:07
【问题描述】:
我在使用 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 编码,但没有任何效果。任何帮助表示赞赏。
【问题讨论】:
-
我假设您正在尝试从文件中读取文本。为什么您认为该文件包含(有意义的)文本?文件来自哪里,来源对编码的要求是什么?当您在十六进制编辑器中查看该文件时,该文件是什么样的?如果您尝试在系统文本编辑器中打开它会怎样?
-
@KarlKnechtel 我可以在文本编辑器中正常阅读文件
-
@SieTw 不,我的意思是,当您
open()文件时,您在什么模式下进行操作?默认为'r',如果您不提供参数,但对于某些文件您想以'rb'模式打开,因为它们没有正确编码为文本。 -
feff字节的意思是en.wikipedia.org/wiki/Byte_order_mark#UTF-16 -
是的;这看起来像 mysql 的“ucs2”,表示“我们不能浪费”。
标签: python unicode python-3.6 python-unicode