Я хочу загрузить файл с помощью метода Django httpresponse
. В имени файла есть специальные символы, например, китайский. Я могу загрузить файл со следующим кодом, но имя файла отображается как «% E6% B8% B8% E6% 88% 8F% E6% B5% 8F% E8% A7% 88% E5% 99% A8% E6% B3% A8% E5% 86% 8C% E9% A1% B5% E9% 9D% A2.jpg».Загрузка файла с китайскими иероглифами в имени в Django с HttpResponse
Может ли кто-нибудь сказать мне, как преобразовать имя файла?
response = HttpResponse(attachment.file, content_type='text/plain',mimetype='application/octet-stream')
response['Content-Disposition'] = "attachment; filename="+urlquote(filename)
return response
Edit:
Другая проблема возникает, если используется smart_str
, имя файла может отображаться нормально в Firefox и Chrome, но не в IE: в IE он по-прежнему отображать неизвестные символы. Кто-нибудь знает, как решить эту проблему?
Заранее спасибо!
--- решил использовать urlquote
и smart_str
по-разному в IE и других браузерах.
Пробовал ли вы без вызова urlquote? – jpic
yes, но без urlquote, unicode error покажет – Angelia
Вы должны заменить вложение «вложение», я думаю ... также попробуйте force_unicode вместо urlquote (из django.utils.encoding import force_unicode) – jpic