的Python:2.7.3django:1.3.1#:coding=utf-8:import csvfrom django.utils.encoding import smart_strfrom task.models import Taskdef 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)中看到数据。为什么以及怎么办?
2 回答

临摹微笑
TA贡献1982条经验 获得超2个赞
尝试将user
实例转换为Unicode,如下所示:
smart_str(unicode(t.user), encoding=encoding)
希望这行得通!
添加回答
举报
0/150
提交
取消