的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編碼看到數(shù)據(jù),但是不能正確地在shift_jis(converted cp932)中看到數(shù)據(jù)。為什么以及怎么辦?
2 回答

臨摹微笑
TA貢獻1982條經(jīng)驗 獲得超2個贊
嘗試將user
實例轉(zhuǎn)換為Unicode,如下所示:
smart_str(unicode(t.user), encoding=encoding)
希望這行得通!
添加回答
舉報
0/150
提交
取消