powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Кирилица в имени файла
7 сообщений из 7, страница 1 из 1
Кирилица в имени файла
    #32736364
WWW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отсылаю файл из БД:
Response.Clear()
Response.AddHeader("content-disposition", "attachment; filename=" & DR("НаимФайла") & "." & DR("Расш"))
Response.BinaryWrite(buf)
Response.End()

Имя берется из MS SQL(поле НаимФайла). Файл скажем называется "Информация GPRS.doc". Но на окне IE "File download"
оно отображается как "...SC,,PsC... GPRS.doc". Я уже и файл web.config подправил :
<globalization requestEncoding="windows-1251" responseEncoding="windows-1251" fileEncoding="windows-1251" culture="ru-RU" uiCulture="ru" />
Не помогает ! В чем проблема ? Спасибо

неужели надо ручками имя файла конвертировать в utf-8 ?
...
Рейтинг: 0 / 0
Кирилица в имени файла
    #32736383
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WWWотсылаю файл из БД:
Response.Clear()
Response.AddHeader("content-disposition", "attachment; filename=" & DR("НаимФайла") & "." & DR("Расш"))
Response.BinaryWrite(buf)
Response.End()

Имя берется из MS SQL(поле НаимФайла). Файл скажем называется "Информация GPRS.doc". Но на окне IE "File download"
оно отображается как "...SC,,PsC... GPRS.doc". Я уже и файл web.config подправил :
<globalization requestEncoding="windows-1251" responseEncoding="windows-1251" fileEncoding="windows-1251" culture="ru-RU" uiCulture="ru" />
Не помогает ! В чем проблема ? Спасибо

неужели надо ручками имя файла конвертировать в utf-8 ?

я эту проблему так и не решил - видимо в utf-8 имя дейстивтельно надо
...
Рейтинг: 0 / 0
Кирилица в имени файла
    #32736439
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оказывается, я уже все что надо сделал, только до ума не довел

Dim byteB(), byteC() As Byte
Dim ascii As Encoding = Encoding.GetEncoding(1251)
Dim utf As Encoding = Encoding.UTF8
Dim scon As String = "абвг"
l2.Text = scon
byteB = New Byte(ascii.GetByteCount(scon) - 1) {}
byteB = utf.GetBytes(scon)
byteC = Encoding.Convert(ascii, utf, byteB)
Dim s As String
s = utf.GetString(byteC)
l1.Text = s

после конвертации в s строка в utf-8 и можно использовать в качестве имени файла

только в web.config надо написать

<globalization requestEncoding="windows-1251" responseEncoding="windows-1251" culture="ru-RU"/>
...
Рейтинг: 0 / 0
Кирилица в имени файла
    #32784997
kxmep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся с этим и долго искал решение...
Вот это помогло:

Код: plaintext
1.
Response.ContentType = "application/vnd.ms-excel;";
Response.AddHeader("Content-Disposition", String.Format("attachment; filename=\"{ 0 }\";", Server.UrlPathEncode("русское имя файла.xls")));

Код: plaintext
kxmep
...
Рейтинг: 0 / 0
Кирилица в имени файла
    #32789080
WWW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, kxmep. Теперь в IE в окне "file dowload" имя файла отображается корректно, но .... в уже открытом файле оно превращается в что-то типа %d0%98%d0%bd%d1%84%d0%be%d1%80%d0%
bc%d0%b0%d1%86%d0%b8%d1%8fGPRS[1].doc

:) . ыыыыыыыыыыыы . подскажите плиз... помру скоро. такая элементарная вещь вроде.
...
Рейтинг: 0 / 0
Кирилица в имени файла
    #32789384
kxmep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в уже открытом файле оно превращается в что-то типа %d0%98%d0%bd%d1

Упс... только заметил :(
Не замечал этого потому, что у меня цель была сохранить файл, а не открыть :)

Кстати, вот тут лишняя точка с запятой в конце:
Код: plaintext
"attachment; filename=\"{0}\" ; "

...будем искать...

Код: plaintext
kxmep
...
Рейтинг: 0 / 0
Кирилица в имени файла
    #32813646
WWW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал обойти проблему и отправить HTML инициирующий отправку файла вместо
Response.AddHeader("content-disposition","attachment; filename=" ...) , написав весь HTML код и отправив его как Response.Write ("<HTML> <HEADER> <META ....>...") затем отправив сами бинарные данные Response.BinaryWrite(buf). Результат: бинарный файл просто отображается в браузере. Окошко File Download не выскакивает. Кто знает это вообще возможно ?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Кирилица в имени файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]