Привет, Гость ! - Войти
- Зарегистрироваться
Персональный сайт пользователя Atom : atom .www.nn.ru  
пользователь имеет статус «трастовый»
портрет № 6470 зарегистрирован в 2002 году

Atom

(Имя скрыто)
Портрет заполнен на 68 %

Отправить приватное сообщение Добавить в друзья Игнорировать Сделать подарок


    Статистика портрета:
  • сейчас просматривают портрет - 0
  • зарегистрированные пользователи посетившие портрет за 7 дней - 1
Блог   >  

Русские символы в URL при применен...

  27.01.2010 в 12:44   817  
Русские символы в URL при применении response.redirect когда Server.URLEncode дает противоположный результат.

Столкнулся с проблемой, что когда метод response.redirect выдает русские символы в URL браузер (IE) их отрезает. Везде предлагается использовать Server.URLEncode для корректной кодировки...

Однако есть одно но. Если редирект идет на файл с русскими символами в имени после URLEncode файл на сервере не находится (если без URLEncode - то файл скачивается, только русские буквы из имени убираются - в IE, а в Opere заменяются на %ASCII - вроде не смертельно, но очень некрасиво)... Такая же проблема есть и при передаче параметров с русскими символами страницам.

Поиск решения не дал результат. Сделал свое решение, которое меня вполне устраивает.

Суть заключается в редиректе посредством JS на стророне клиента. Для этого вместо response.redirect скрипт должен выдать клиенту страничку, которая уже перенаправит клиентский браузер в нужное место.

То есть, вместо response.redirect пишем такой код:


%>
<html>
<head>
<title>Перенаправление</title>
<meta http-equiv=REFRESH CONTENT=″10; URL=<%= RedirectURL%>″>
</head>
<SCRIPT LANGUAGE=javascript>
<!--
document.location.href=″=<%= RedirectURL%>″;
//-->
</SCRIPT>
</head>

<body>
<p align=center>Если загрузка не началась автоматически, нажмите кнопку ″Загрузить″</p>
<CENTER>
<FORM action=″=<%= RedirectURL%>″>
<Input Type=″submit″ VALUE=″Загрузить″ Class=′button′>
</FORM>
</CENTER>
</html>

<%


(в данном случае мне нужна была загрузка файла с русскими симвовали в имени - отсюда такое содержание текста).

Работает корректно и в IE и в Opera.