的Python:2.7.3
django:1.3.1
#:coding=utf-8:
import csv
from django.utils.encoding import smart_str
from task.models import Task
def export_history_templates(output, encoding='cp932'):
header = [
u'ID',
u'NAME',
u'SENDER',
]
header = [s.encode(encoding) for s in header]
writer = csv.writer(output)
writer.writerow(header)
for t in Task.objects.order_by('-id'):
r = [
t.id,
smart_str(t.name, encoding=encoding),
smart_str(t.user, encoding=encoding), # user is a User table object
]
writer.writerow(r)
这是一个csv下载方法。生成一个csv文件后,可以user正确地通过utf-8编码看到数据,但是不能正确地在shift_jis(converted cp932)中看到数据。
为什么以及怎么办?
临摹微笑
相关分类