欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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)

 

相关标签: 编码错误