0

パイソン: 2.7.3

ジャンゴ: 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)では正しく見えません。

なぜ、どのように行うのですか?

4

1 に答える 1

1

user次のように、インスタンスを Unicodeに変換してみてください。

smart_str(unicode(t.user), encoding=encoding)

これがうまくいくことを願っています!

于 2013-05-28T00:59:05.760 に答える