Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> sendRedirect() и URL с кириллцей. 
:(
    Опции темы
Mortician
Дата 21.10.2011, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 21.10.2011
Где: ./milkyway/sun/ea rth/rf

Репутация: нет
Всего: нет



Уж простите меня если создал топик не в той ветке.
Возникла проблема, есть различные ЧПУ URLы вида /статьи/разные/название-статьи.html и нужно сделать редирект на эти URL. Подскажите пожалуйста, как правильно это сделать.
Естественно просто так это не выйдет:
Код

response.sendRedirect(“/статьи/разные/название-статьи.html”);
нужно преобразовать элементы пути в UTF-8, но так:
Код

response.sendRedirect(java.net.URLEncoder.encode(“/статьи/разные/название-статьи.html”,"UTF-8"));
делать нельзя потому что спец символы тоже будут закодированы и ничего хорошего не получится.
Видел в как некоторые товарищи предлагают делать так: 
Код

response.sendRedirect(java.net.URLEncoder.encode(“/статьи/разные/название-статьи.html”,"UTF-8").replace("%2F", "/"));
только выглядит это как-то по китайски (простите за не корректность).
Подскажите пожалуйста, как это более человечно сделать, или возможно есть готовые решения?
PM MAIL   Вверх
Nofate
Дата 21.10.2011, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 266
Регистрация: 13.10.2008

Репутация: 2
Всего: 8



Вполне себе решение товарищи советуют. Еще можно разбить исходный путь по символу "/", заэнкодить кусочки и склеить обратно.


--------------------
The future is not set, there is no fate but what we make for ourselves.
Нофейтово пространство и смежные области 
PM MAIL WWW ICQ   Вверх
Mortician
Дата 21.10.2011, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 21.10.2011
Где: ./milkyway/sun/ea rth/rf

Репутация: нет
Всего: нет



Nofate, 
Цитата

Вполне себе решение товарищи советуют. Еще можно разбить исходный путь по символу "/", заэнкодить кусочки и склеить обратно. 

Ну разбить, а потом склеивать сложнее, а результат тот же... Однаго в любом случае другие спец. символы тоже закодируются также - что ни есть хорошо.

Это сообщение отредактировал(а) Mortician - 21.10.2011, 14:50
PM MAIL   Вверх
Samotnik
Дата 22.10.2011, 12:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Mortician, ь тут глянуть можешь ещё.
PM MAIL   Вверх
Mortician
Дата 22.10.2011, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 21.10.2011
Где: ./milkyway/sun/ea rth/rf

Репутация: нет
Всего: нет



Samotnik, да в общем уже читал эту ветку, наверное это единственное, что есть на русском по данной проблеме.
Только mike_teplitsky там посоветовал совсем не в тему. А dozen предложил не совсем работающий, устаревший аналог java.net.URLEncoder.encode и decode, такая вот печаль... Похоже sendRedirect не готов к интернационализации url, а правильное кодирование целого URL нужно делать вручную либо кодировать части по отдельности.
Дзякуй братка!
PM MAIL   Вверх
Samotnik
Дата 22.10.2011, 13:21 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 5
Всего: 191



Mortician, там ещё советовали вызвать toASCIIString() тоже не помогает ?
PM MAIL   Вверх
Mortician
Дата 22.10.2011, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 21.10.2011
Где: ./milkyway/sun/ea rth/rf

Репутация: нет
Всего: нет



Samotnik, вот дела, я увидел groovy и даже не стал читать его пост... Моя вина.. 
Еще раз Спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0916 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.