‘utf-8‘ codec can‘t decode byte 0x.. in position .: invalid start byte
文章目录
- 前言
- 方法一
- 方法二
- 参考链接
前言
python中,string和bytes互转的时候,经常会遇到这个问题。常用的解决方法有两种
方法一
在获取bytes的时候就指明使用的字符集。这里拿utf-8
举例:
with open('1.txt', 'r+', encoding='utf8') as f:content = f.read()
甚至是在写入的时候就指明字符集:
with open('1.txt', 'w+', encoding='utf8') as f:f.write(b'pandora')
对这样读出的bytes流使用decode('utf-8')
就不会出错了。
方法二
没法像上面这样做到控制怎么办?比如生成的随机数密钥。或者嫌麻烦,有没有更好的方法?
办法很简单,使用base64
之类的编码先将bytes流转为常见的文本字符对应的bytes流,然后再对处理后的bytes流使用decode('utf-8')
之类的办法就没问题了。
这里用base64
库提供的base64.b64encode()
举例:
import base64
byte_s = b'\xbc#\x02\t\x1f2\xf4\xff'
# str_s = byte_str.decode('utf-8') # 会报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbc in position 0: invalid start byte
base64_bytes = base64.b64encode(byte_s)
str_s = base64_bytes.decode('utf-8')
print(str_s)
复原的时候倒序进行一遍就行:
base64_bytes = str_s.encode('utf-8')
byte_s = base64.b64decode(base64_bytes)
print(byte_s)
参考链接
- PyCryptodome - document
- Python utf-8与byte的解码问题 - CSDN
‘utf-8‘ codec can‘t decode byte 0x.. in position .: invalid start byte相关推荐
- 'utf-8' codec can't decode byte 0xb5 in position : invalid start byte
看一下文件的编码就可以了,然后选择对应的编码
- jupyter打开文件时UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xa3 in position: invalid start byte
网上试了好多种方法 1.utf-8改为gbk或者gb18030 2.下载了notepad++,把文件拖进去,最上面有个编码,把编码改为utf-8 (但我的文件格式就是utf-8,还是不行) 3.在模块 ...
- python2(中文编码问题):UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1...
python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: 'ascii' codec can't deco ...
- 解决python错误:utf-8 codec can't decode byte 0xbb in position3:invalid start byte
今天在做特征工程案例时,读取数据一直报错 utf-8 codec can't decode byte 0xbb in position3:invalid start byte. 查了好多资料,有的说把 ...
- UnicodeEncodeError: ‘locale‘ codec can‘t encode character ‘\u5e74‘ in position 2: Illegal byte seque
错误 UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: Illegal byte se ...
- python编码错误:UnicodeDecodeError: 'utf8' codec can't decode
python编码错误:UnicodeDecodeError: 'utf8' codec can't decode (2012-11-01 17:16:23) 转载▼ 标签: 杂谈 分类:python学 ...
- import configparser config.read(config_path) 报错 UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x
import configparser config.read(config_path) 报错 UnicodeDecodeError: 'gbk' codec can't decode byte 0x ...
- python 读取数据出现UnicodeDecodeError:: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid contin
之前写程序时也出现过类似错误,每次解决了到第二次遇见又忘了具体方法,这次记录一下. 一.字符编码问题 先介绍一下字符编码问题 1.ASCLL与GB2312 由于计算机是美国人发明的,因此,最早只有12 ...
- Python打开读文件:UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xed in position 7014: invalid conti
1.问题: Python用open()打开文件,读取其中内容时,报错说编码错误,'utf-8' 编码不能给字节0xed编码. feed LM input feed file: ./data/raw/2 ...
最新文章
- Nginx配置文档具体解释
- vue 上传图片视频组件,可拍照选择照片,解决苹果手机拍照旋转问题
- 消息队列系列(二):.Rabbitmq的使用及Web监控工具使用
- 高并发高负载网站的系统架构
- scikit-learn一般实例之一:绘制交叉验证预测
- 哈希表数据结构_Java数据结构哈希表如何避免冲突
- javaweb功能模块如何合理设计_设计行业如何合理税筹
- 易语言中关于成员变量的声明
- Codeforces Round #573 (Div. 2)
- paip.提升用户体验---c++ gcc 命令语法着色搭配方案
- 【MATLAB深度学习工具 deepNetworkDesigner的使用 包涵实例手写数字识别和LSTM预测完整代码 】
- BP神经网络算法基本原理,基于bp的神经网络算法
- 5.23低版本到高版本问题
- 我爱淘二次冲刺阶段5
- 短视频热度还能持续多久
- 笔记本win10宽带共享wifi热点教程
- Git 入门最佳实践
- 模拟退火算法(惩罚函数法求约束优化问题)
- 解决微信电脑版备份的问题:当前网络状况复杂,请尝试使用其它网络
- Centos 7 系统修改终端背景为黑底白字