UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte解决方法 2016-09-27 18:39:27 不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过 Unicode Encode Error Unicode Decode Error 错误,每当遇到错误我们就拿着 encode、 decode 函数翻来覆去的转换,有时试着试着问题就 解决 了,有时候怎么试都没辙,只有借用 Google 大神帮忙,但似乎很少去关心问题的本质是什么,下次遇到类似的问题重蹈覆辙,那么你有没有想过一次性彻底把 Python 字符编码给搞懂呢? 完全理解字符编码 与 Python 的渊源前,我们有必要把一些基础概念弄清楚,虽然有些概念我们每天都在接触甚至在使用它,但并不一定真正理解它。比如:字节 今天想使用pyquery库读取本地HTML文件时报错: Unicode Decode Error : ‘gbk’ codec can’t decode byte 0xa1 in position 164: illegal multi byte sequence。 翻译一下就是 Unicode Decode Error : ‘gbk’编解码器无法解码位置164中的字节0xa1:非法多字节序列。    分析原因: 这个HTML文件是 utf-8 格式的文件,存储是二进制数据,使用pyquery读取时是采用gbk进行解码!读到了非gbk编码形式的二进制数据,于是就报错了!   排错过程: 我通过查看pyquery源码,企 问题出在版本上,因为在前面的函数里把fw = open(filename,'w')改成了fw = open(filename,'wb'),所以在这个函数中也把fr = open(filename)改为fr = open(filename,'rb'),问题 解决 ,事实证明确实是版本不同导致的。 报错内容: Unicode Decode Error : ' utf-8 ' codec can't decode byte 0x80 in position 0: invalid s tar t byte 环境:Ubuntu16.04 + pycharm 2018.3 解决 方法 :open文件时使用‘rb’方式 问题分析:数据文件在保存时以二进制形式保存,读取时应以二进制形式读取。原因看似简单,但在写行数较多的程序时经常会忽略,导致运行过程中报错。 版权声明:本文为CSDN博主「一个处女座的程序猿」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_41185868/article/details/86483171。1、将 encoding=’ utf-8 ’ 改为GB2312、gbk、ISO-8859-1,随便尝试一个均可以!编码的问题,将 utf-8 改为:gb18030 成功 解决 问题。2、将 encoding=’ utf-8 ’ 改为gbk。 困扰了很久的问题今天终于 解决 了!!! 异步导入csv文件提示 Unicode Decode Error : ' utf-8 ' codec can't decode byte 0xc8 in position 0: invalid continuation byte 原代码为: resp = requests.get(private_url).content with open(file_dir_name, "w") as fd: fd.write(resp. decode (encodin python 读取文件时,抛异常:' utf-8 ' codec can't decode byte 0x80 in position 64: invalid s tar t byte 解决 办法 读取文件时,以二进制文件读取 open(file=file_full_name, mode='rb') # 抛异常 open(file=file_full_name, mode='r') mode 参数源码释义: mode是一个可选字符串,用于指定文件的存储模式打开了。它默认为“r”,这意味着可