У нас есть .Net Web-приложение, в котором пользователь может скачивать файлы. Имя файла, в котором могут быть файлы, может содержать датские символы æ, ø и å и, возможно, некоторые другие символы некоторого языка foreigh.Разница между ContentDispositionHeaderValue.FileName и ContentDispositionHeaderValue.FileNameStar
Мы используем класс HttpResponseMessage для отправки файла, в котором ContentDispositionHeaderValue инициализируется как «приложение».
Однако присвоение свойству
FileName
не работает в IE для датских символов, но работает, если я задаю имя файла
FileNameStar
, где имя файла получает автоматически закодированной в нужном формате ,
Так это работает:
Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileNameStar = "filename with æ ø and å"
};
Я могу, однако, не найти какой-либо документации, почему он автоматически кодируется, и какие браузеры поддерживают эту функцию.
Поиск в Интернете дает предложения о том, что я должен кодировать строку перед назначением свойства FileNamestar. Но это не обязательно, поскольку я вижу в трассе http, что он закодирован правильно.
Поддерживаются ли все основные браузеры? И могу ли я быть уверенным, что имена файлов закодированы правильно?
Благодаря Джихад
Спасибо. Но какие браузеры поддерживают это, и могу ли я отправить как FileName, так и FileNameStar в тот же запрос? –
Большинство браузеров поддерживают это. Если ваше имя файла - это набор символов ISO-8859-1, то используйте FileName, если он содержит символы UTF, используйте FileNameStar. Если можно использовать FileNameStar, он будет работать в обоих случаях. – Jonas