В моем приложении asp.net mvc у меня есть код:
response.ContentType = "application/octet-stream";
response.AddHeader("Content-Disposition", "attachment;filename=" +
HttpUtility.UrlEncode(attachment.FileName));
, чтобы все китайские символы кодировались в URL, например, %5C%2D
В IE / Chrome, когда пользователи скачивают файл, они получают китайское имя файла (то есть IE / Chrome автоматически URL-декодирует имя файла).Но в Firefox они получат что-то вроде %5C%2D%0A.docx
.Теперь я собираюсь удалить HttpUtility.UrlEncode
в коде.Но прежде чем сделать это, я хочу подтвердить, что в этом случае нет проблем с безопасностью.Не могли бы вы дать мне несколько идей?
РЕДАКТИРОВАТЬ Корбин ответ правильный.Но после удаления url-кодировки имени файла некоторые пользователи, использующие старую версию IE, получат странные грязные имена файлов.Наконец, я делаю url-кодирование только для этих пользователей.