Диалог загрузки файла - PullRequest
       3

Диалог загрузки файла

3 голосов
/ 01 апреля 2011

У меня есть одна проблема.

В приложении ASP.NET я создал ссылку на некоторый документ, имя документа сохраняется в базе данных, и когда пользователь нажимает на ссылку, появляется диалог загрузки файла.

Проблема возникает, когда имя файла - сербский кириллица, в диалоге загрузки файла отображается имя файла с некоторыми странными символами. Посмотреть изображение

File download file name strange characters

Когда я использую HtmlEncode для имени файла, IE работает нормально (показывает правильное имя файла), но тогда проблема в FireFox.

Спасибо.

1 Ответ

2 голосов
/ 01 апреля 2011

Вы должны кодировать не-AscII символы. Я использую этот метод:

    public static string URLEncode(string tekst)
    {
        byte[] t = Encoding.UTF8.GetBytes(tekst);
        string s = "";
        for (int i = 0; i < t.Length; i++)
        {
            byte b = t[i];
            int ib = Convert.ToInt32(b);
            if (ib < 46 || ib > 126)
            {
                s += "%" + ib.ToString("x");
            }
            else
            {
                s += Convert.ToChar(b);
            }
        }
        return s;
    }  

И проверьте, нужно ли его кодировать - тогда оно должно работать в IE и FF:

if (Page.Request.Browser.IsBrowser("IE"))  
fileName = URLEncode(fileName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...