Django: экспорт данных модели в файл excel искажает набор символов

Я пытаюсь экспортировать данные модели в файл типа Microsoft Excel (.xls), используя это представление:

def generate_spreadsheet(request):
    alumnos = Alumno.objects.all()
    response = render_to_response("spreadsheet.html", {'alumnos': alumnos})
    filename = "alumnoss.xls"
    response['Content-Disposition'] = 'attachment; filename='+filename
    response['Content-Type'] = 'application/vnd.ms-excel; charset=utf-16'
    return response

Как видите, я определяю набор символов как utf-16, который должен включать все дополнительные символы, такие как áéíóú и т. д. Но когда я открываю документ Excel, вместо чтения

Велес

ты читаешь:

Велес

Любая помощь будет оценена по достоинству :)


person marcoamorales    schedule 08.05.2011    source источник


Ответы (2)


Вы можете указать, какая кодировка будет использоваться для рендеринга, определяя DEFAULT_CHARSET в вашем файле settings.py:

http://docs.djangoproject.com/en/1.3/ref/settings/#default-charset

person ygneo    schedule 08.05.2011
comment
Это не имело значения, это не изменило результат. - person marcoamorales; 09.05.2011
comment
В этом случае проверьте, какая кодировка используется в БД. Вы определили utf-16 как кодировку для этой таблицы? Вы определили настройку кодировки БД в своем проекте django? И, как говорит @Etienne, будет полезно, если вы покажете код шаблона. - person ygneo; 09.05.2011

render_to_response(), вероятно, пишет в utf-8, а не в utf-16.

person Etienne    schedule 08.05.2011
comment
Может быть, вы должны показать нам свой код шаблона. Вы создаете настоящий файл Excel или файл CSV? - person Etienne; 09.05.2011