1
Excelでは正しく開くが、ファイルではなくStringIOを使用するCSVを生成しようとしています。StringIOがBOMを含むcsvファイルを生成しました
output = StringIO("\xef\xbb\xbf") # Tried just writing a BOM here, didn't work
fieldnames = ['id', 'value']
writer = csv.DictWriter(output, fieldnames, dialect='excel')
writer.writeheader()
for d in Data.objects.all():
writer.writerow({
'id': d.id,
'value': d.value
})
response = HttpResponse(output.getvalue(), content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename=data.csv')
return response
これはDjangoビューの一部です。このために、私は実際には一時ファイルをダンプすることに取り組んでいません。
私も次のことを試してみた:
response = HttpResponse(output.getvalue().encode('utf-8').decode('utf-8-sig'), content_type='text/csv')
Excelが開きますように
は、私は、BOMと正しくutf-8-sig
でエンコードされた出力ファイルを取得するために何ができるの運とファイルを表示し、複数バイトのUnicode文字を正しく表示できますか?