关于Python csv导出的csv文件通过excel表格打开中文乱码问题

前言

最近接到客户的一个需求,要求导出csv文件,然后客户电脑上只有
Excel工具,在客户用Excel打开csv文件的时候出现中文乱码,经过排查发现默认导出的格式是utf-8格式,而Excel表格没办法直接打开这个格式的csv文件,所以出现乱码,经过调查将UTF-8编码转换成UTF-8 BOM编码就可正常使用Excel表格打开。

导入所需要的python包

import csv
from django.http import HttpResponse

代码演示

class ExportView(MesBaseListView):
    queryset = models.objects.all()
    serializer_class = Serializer
	
	def list(self, request, *args, **kwargs):
		# 下面这句代码是起关键作用的代码charset='utf-8-sig'
		response = HttpResponse(content_type='text/csv', charset='utf-8-sig')
	    file_name = '文件名称.csv'
	    response['Set-Cookie'] = f"{task_id}=true; path=/"
	    response["Content-Disposition"] = "attachment; filename*=UTF-8''{}".format(escape_uri_path(file_name))
	    writer = csv.writer(response)
	    writer.writerow(['DATE', 'TIME', 'TPV(量测温度)℃', 'TSP(设定温度)℃', 'HPV(量测湿度)%RH', 'HSP(设定湿度)%RH'])
	    writer.writerows(res_list)
	    return response

你可能感兴趣的:(python,django)