| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Настрройка Tomcat |
| Автор: NetLord 13.4.2005, 14:20 |
| Здраствуйте! У меня следующая проблема: JSP страница отображает файловую структуру моего компьютера и позволяет перемещаться по ней. В качестве параметров ей передаются название файлов , директорий. И вобщем все нормально если я использую JBuilder со встроенным Tomcat Но как только я перебрасываю приложение на отдельный Tomcat появляется проблема с кирилицей . В упор отказывается воспринимать и обрабатывать кириллицу. Получаю вместо символов ??? Допустим у меня директория Vingrad а в ней Винград При обращении к 1-й он ее прекрасно видит причем поддиректорию Винград понимает нормально видит ее, отображает нормально. Но как только я обращаюся к Винград получаю исключение FileNоtFoundException .....Vingrad\???????. JDK SE используются одинаковые в обоих случаях. |
| Автор: batigoal 13.4.2005, 14:27 |
| Кодировка страницы прописана? |
| Автор: NetLord 13.4.2005, 14:34 |
| Да с кодировкой страницы все ОК. |
| Автор: Guest 18.4.2005, 09:40 |
| Здесь важна не кодировка страницы, а кодировка request: request.setCharacterEncoding("Cp1251"); Этот вызов должен быть произведен до вызова getParameter(). В книге "Самоучитель Java 2.0" (автора не помню) это рекомендуется делать в фильтре. Я пробовал - не получается. Способы обхода проблемы: 1. Получить параметр в виде byte[] и перекодировать вручную 2. Передавать не имя файла, а его номер в каталоге 3. Перекодировать имя файла вручную (например используя транслит) |
| Автор: NetLord 18.4.2005, 14:16 |
| Спасибо, я разобрался. Воспользовался кодировщиком из пакета apache.commons так как родной URLEncoder сбоил. Сразу стал понимать кириллицу из параметров request - хотя внешне оба кодировщика выдавали один и тот же результат. В чем баг не пойму |
| Автор: 3,14 19.4.2005, 14:36 |
| NetLord - а код старый и новый не запостишь? |
| Автор: NetLord 20.4.2005, 12:03 | ||
| 3,14 NetLord - а код старый и новый не запостишь? Новый код
Отличие старого только в том что в качестве кодека я использовал класс java.net.URLEncoder вместо org.apache.commons.codec.net.URLCodec |