Я столкнулся с проблемой при попытке обслуживать файлы с испанскими тильдами, связанной с кодировкой Content-Disposition.
Имя файла: "qué hacés ahora.docx"
Пока что способ обслуживания файлов в ASP.NET MVC добавляет этот заголовок, который отлично работает только в Firefox:
Content-Disposition: attachment; filename*=UTF-8''qu%C3%A9%20hac%C3%A9s%20ahora.docx
Я использую в контроллере:
return File(path, "application/octet-stream", originalNameWithAccents);
Это не работает в IE или Chrome.
Итак, я отправил себе по электронной почте файл в виде вложения, используя GMail. Используя firebug, чтобы увидеть, что происходит, Google Content-Disposition отправляет обратно:
Content-Disposition: attachment; filename="=?UTF-8?B?cXXDqSBoYWPDqXMgYWhvcmEuZG9jeA==?="
Обратите внимание, как имя закодировано в base64 (cXXDqSBoYWPDqXMgYWhvcmEuZG9jeA ==).
Итак, у меня есть 2 вопроса:
- Где спецификация для этого?
- Существуют ли какие-либо известные способы обслуживания файлов этого типа с помощью ASP.NET?