utf8,gbk 都报错
程序员文章站
2022-05-28 12:59:10
...
UnicodeDecodeError: 'gbk' codec can't decode byte 0xfa in position 4669: illegal multibyte sequence
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 5: invalid start byte
with open('进线汇总20201211.csv',encoding='utf8') as f:
t = f.readlines()
print(t)
运行上述代码,在编码设置中,无论切换为 utf8,还是 gbk 都报错,原因可能是文件中 gbk,utf8 混用,还有一种是源文件编码是带有 BOM 的 utf8.
解决:
打开文件,读取时,忽略不能解码的,读取成功后,另存为新的文件,新的文件就不会存在编码问题了,可运行下面代码
import csv
with open('进线汇总20201211.csv',encoding='gbk',errors='ignore') as f:
t = f.readlines()
with open('进线汇总20201211_clear.csv','w+',encoding='gbk',newline='') as f:
wr = csv.writer(f)
for l in t:
l = l.split(',')
wr.writerow(l)
上一篇: self.status.split(' ',1)[0], self.bytes_sent 'NoneType' object has no attribute 'split'
下一篇: 解决Python读取文件时出现编码异常
推荐阅读
-
MySQL字符集 GBK、GB2312、UTF8区别 解决MYSQL中文乱码问题
-
Eclipse安装sdk后每次启动都报错when loading the sdk?
-
Eclipse安装sdk后每次启动都报错when loading the sdk?
-
Oracle将字符编码从GBK转到UTF8,如何操作比较稳妥?
-
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
-
java编译报错 错误: 编码GBK的不可映射字符
-
UTF-8 GBK UTF8 GB2312 之间的区别和关系介绍
-
Mysql以utf8存储gbk输出的实现方法提供
-
PHP通过iconv将字符串从GBK转换为UTF8字符集
-
谨慎修改Oracle数据库字符集(UTF8<->ZHS16GBK)