一、报错内容

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position xx: invalid continuation byte

二、报错翻译

Unicode解码错误: 'utf-8'编解码器无法解码位置(第38行)中的字节:因为这个字节是无效的延续字节
0xd6:0x开始能区分十六进制与十进制表达,这里是0xd6(十六进制)=6*1+13*16=214(十进制)=1101 0110(二进制),即本次无法解码:1101 0110

三、根源追溯

在国际上,各个国家认可标准的ASCII编码,包含a-z、A-Z、0-9、常见键盘符等;在实际编程中,除了使用英文,我们也要使用本国的语言,于是各国产生了本国的ANSI编码,即在ASCII编码的基础上往前不断堆叠0和1,而ANSI编码在中国的规则是常见的gbk编码

同样是二进制字节 1101 0110 ,gbk解码(我国ANSI编码)代表内容是和他国ANSI编码代表内容可以完全不一致,即我们常说的乱码问题。

输入中文字符串时,在内存中是以unicode形式存储,我们也可以添加encoding参数指定以哪种编码方式存储,在win系统中,默认编码是ANSI编码,在简体中文的环境则为“gbk”,尤其一点,python的输出环境是默认为utf-8,即pandas库的to_csv默认结果为utf-8,而简体中文的excel遇到中文时是按gbk解码的,不加参数往往会遇到问题

因此,pandas库的to_csv往往添加参数  ,encoding=‘utf_8_sig’或者encoding=‘gbk’(‘ansi’)

补充编码解码的代码案例:

s='中'
print(ord(s))  #20013
'中'.encode('utf-8')   #b'\xe4\xb8\xad'
DATA = b'\xe4\xb8\xad'
DATA = str(DATA,'utf-8')
print(DATA)  #中

四、解决方案

(1)utf-8' codec can't decode byte 0xd6 in position xx: invalid continuation byte

在read_csv中添加:    encoding='ISO-8859-1'

import pandas as pd
Exposure_raw = pd.read_csv(r'D:\Program Files\Anaconda3\installation location\Lib\site-packages\addressparser\pca.csv', index_col=0,encoding='ISO-8859-1')

(2)'str' object has no attribute 'decode' (字符串对象没有编码属性)

--------->需对字符串先编码成二进制,再解码

'张俊'.encode('utf-8').decode('utf-8')

而且,如果是: '张俊'.encode('utf-8').decode('gbk') 结果与上面不同

五、参考网址

(1)解码错误解决方案

Python——报错 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 52: invalid continuation byte问题解决 - 小猪课堂 - 博客园这里介绍一个在read_csv()时报错的原因为:(加工字为位置可以任意) UnicodeDecodeError: 'utf-8' codec can't decode bythttps://www.cnblogs.com/huangchenggener/p/10983812.html

(2)编码根源解释

浅谈python3中的编码问题-数据小站在python3中,默认使用的是unicode编码。当我们输入中文字符时,在内存中是按照unicode编码存储,当需要写入硬盘时,会根据系统环境,自动按照gkb、utf8编码存储,减少存储开销。当然我们可以指定编码。http://www.51dtsc.cn/?p=884(3)代码小案例

Python >>> b'\xe6\x88\x91'类型编码转换为汉字_原谅我这一生不羁放纵爱自由-CSDN博客当接收到类似这样的一串东西的时候:b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'而我们需要将其转换为汉字进行显示。则我们只需要在代码中将其编码换成utf-8 即可:DATA = b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'DATA = str(DATA,'utf-8')print(DATA)输出结果:我爱你...https://blog.csdn.net/weixin_40973138/article/details/105593481(4)'str' object has no attribute 'decode'

AttributeError: ‘str‘ object has no attribute ‘decode‘解决方法_我爱柠檬博客-CSDN博客出现这个问题可能是两个原因造成的:1、Python2和Python3在字符串编码上的区别。2、Python 3.4: str : AttributeError: ‘str’ object has no attribute 'decode原因一的解决方法:print (‘张俊’.encode(‘utf-8’). decode(‘utf-8’) ) #必须将字节字符串解码后才能打印出来参考链接:https://www.cnblogs.com/geekard/archive/2012/10/04/pyhttps://blog.csdn.net/qq_43192819/article/details/108981008

---->方案1::先encode转为bytes,再decode
---->方案2:强制转换忽略错误:bytes.decode(‘’utf-8‘’, ‘’ignore‘’)

UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte xx in position xx: invalid continuation byte相关推荐

  1. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc7 in position 0: invalid continuation byte

    [写在前面] 今天在做说stm32和服务器之间的通信时因为编码格式问题导致了一些错误做个记录: 测试时搭载在云服务器上的python socket通讯模块数据接收部分代码如下: receive_dat ...

  2. UnicodeDecodeError: 'utf8' codec can't decode byte 0xd1 in position 0: invalid continuation byte问题

    在用python编码的时候,想把一txt文件里面的东西,插入到excel表格中,结果出现了UnicodeDecodeError: 'utf8' codec can't decode byte 0xd1 ...

  3. UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xca in position 24: invalid continuation byte

    Flask报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xca in position 24: invalid continuatio ...

  4. 解决UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xca in position 0: invalid continuation byte

    英文字母,数字,符号都用特定的二进制编码方式计算机才能识别."UnicodeDecodeError: 'utf-8' codec can't decode byte 0xca in posi ...

  5. 解决UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xc8 in position 0: invalid continuation byte

    困扰了很久的问题今天终于解决了!!! 异步导入csv文件提示UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0 ...

  6. UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xc8 in position 0: invalid continuation byte

    date=pd.read_csv('./apriori/date.csv')报错: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 i ...

  7. UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xd5 in position 84: invalid continuation byte

    历经四天,查阅资料无数,期间报错无数,终于解决. 解决过程: 『TensorFlow × MXNet』SSD项目的复现: 在将图像数据转化为tfrecord格式过程中,直接运行tf_convert_d ...

  8. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcf in position 1: invalid continuation byte。

    这是我搭建django的时候的问题,那个时候重装了系统,出来后运行manage.py就报错了. UnicodeDecodeError: 'utf-8' codec can't decode byte ...

  9. UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xcf in position 39: invalid continuation byte

    文章目录 1 错误重现 2 解决办法 1 错误重现 使用读取的代码: def readText(text_file_path):with open(text_file_path) as f: cont ...

  10. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcf in position 33: invalid continuation byte

    用pa.read_csv将csv文件导入时出现 在机器学习时需要csv中的数据作为数据集用,但是在导入csv中的数据时出现 UnicodeDecodeError: 'utf-8' codec can' ...

最新文章

  1. Swift: 可变参数
  2. Git中的有个致命的远程执行漏洞
  3. 2019春第四周作业软件
  4. primefaces_PrimeFaces扩展中的全新JSF组件
  5. java 线程安全的单例_线程安全的单例模式的几种实现
  6. ASP.NET-权限管理五张表
  7. 百钱买白鸡与啤酒饮料
  8. Node.js学习准备篇
  9. C do...while 循环
  10. 微信小程序上线广告功能 打造O2O闭环
  11. java中volatile关键字_Java中Volatile关键字详解
  12. 没钱充会员 百度网盘下载限速怎么办?这些招可以突破百度网盘非会员限速限制
  13. 密码学应用的四个进化阶段
  14. 清华085211计算机技术,2018年清华大学计算机系计算机技术考研(085211)考试科目、参考书目、复习经验---新祥旭考研...
  15. python抠图 removebg,removebg包:一键抠图换证件照底色
  16. 软件测试-兼容性测试
  17. 大疆推出Avata无人机以及飞行眼镜Goggles 2
  18. AndroidKK4.4 Power key电量屏幕时button light先亮LCD后亮的卡顿问题分析
  19. 关于tomcat启动的错误:Error running... jmxremote.access
  20. 我国南极泰山站正式建成开站

热门文章

  1. 微信小程序云开发-树洞小程序Treehole(畅所欲言/交易广场实现)
  2. Windows API 教程(七) hook 钩子监听
  3. ctf题库--天下武功唯快不破
  4. SpringBoot+Vue项目小区物业管理系统
  5. 1000句最常用英语口语
  6. react 中的userReducer
  7. [ctfshow 2021摆烂杯] FORENSICS部分 writeup
  8. python中TODO注释介绍
  9. SpringBoot/SpringMVC整合Shiro:实现登录与注册(MD5加盐加密)
  10. 开发团队如何选型支付网关