今天在处理python写入csv中文乱码问题,尝试各种办法,百思不得其解,网上找到的最常用的办法就是
1. encoding='utf-8':无效
with open('data4.csv', 'a', encoding='utf-8', newline='') as csvfile:
fieldnames = (['id', 'name', 'age'])
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writerow({'id': '10005', 'name': '张伟', 'age': '32'})
2. encoding='utf-8-sig':有效
with open(filename, 'a', newline='', encoding='utf-8-sig') as f: # 中文需要设置成utf-8格式
f_csv = csv.writer(f)
f_csv.writerow(('城市', '日期', '天气', '风力', '温度', '摄氏度')) # 头部信息
f_csv.writerows(data)
3. 先转码再储存:无效
data.decode('utf-8').encode('gbk')