Django导出CSV时德语字符乱码问题求助(已试UTF-8无效)
解决CSV导出时德语字符乱码问题
以下是针对该问题的具体解决方案:
添加UTF-8 BOM标记
多数桌面CSV工具(如Excel)默认不会自动识别UTF-8编码,需要在CSV内容开头插入UTF-8 BOM(\ufeff)来强制工具以UTF-8解析。修改代码如下:response = HttpResponse(content_type="text/csv", charset="utf-8") # 写入UTF-8 BOM response.write('\ufeff') # 初始化CSV写入器并添加内容 import csv writer = csv.writer(response) writer.writerow(["Ernährungssouveränität"])优化响应头设置
补充Content-Disposition头,并明确在content_type中指定编码,进一步确保客户端正确处理:response = HttpResponse(content_type="text/csv; charset=utf-8") response['Content-Disposition'] = 'attachment; filename="exported_data.csv"' response.write('\ufeff') # 后续CSV写入逻辑确认内容源编码正确性
检查生成CSV的原始数据(如数据库读取、字符串拼接)是否本身为UTF-8编码,避免在数据生成阶段就出现编码错误。
内容的提问来源于stack exchange,提问作者Montio5
相关产品推荐
相关产品推荐

