
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
02.03.2007, 13:06:39
|
|||
|---|---|---|---|
Томкэт, данные из оракла и кирилица |
|||
|
#18+
Помогите!! Страничка, формируемая сервлетом, заполняется данными из оракла и при ее просмотре под томкэтом он всю кирилицу показывает вопросами. Нашел кучу подобных вопросов, но так и не нашел работоспособного в моем случае ответа... В сервлете при заполнении странички ставлю Код: plaintext 1. 2. 3. пробовал и юникод (данные в оракле в юникоде) Код: plaintext и все равно знаки вопроса... менял кодировки просмотра в браузере - не помогает... При формировании отчета из оракла (с помощью Jasper Reports, сервлет запускает нужные классы) в виде htm странички, сохранения ее на диск, и просмотра под томкатом все те же знаки вопроса вместо кирилицы. Зато при открытии этой странички без томкэта, просто кликнув по ней, кирилицу показывает нормально!! Эксплорер в этом случае сам ставит кодировку просмотра странички UTF-8. Что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.03.2007, 14:08:12
|
|||
|---|---|---|---|
Томкэт, данные из оракла и кирилица |
|||
|
#18+
Попробуйте строку перед выводом переконвертировать с windows-1251. Т.е. на базе этой строки создать новую с кодировкой windows-1251 и ее в response ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.03.2007, 14:55:34
|
|||
|---|---|---|---|
Томкэт, данные из оракла и кирилица |
|||
|
#18+
Понял в чем эта проблема, но появилась новая! Передаю вызов из сервлета на созданную JasperReport страницу так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Вообще то мне совсем не обязательно отправлять именно пост запрос, хватит и гет. Посоветуйте как это сделать попроще, а то пост как то сложновато получается, тем более что параметры никакие не нужны... Так вот в чем проблема - этот пост запрос почему-то уходит не в юникоде, и, соответственно, все и получается иероглифами. Т.е. если просто в браузере набрать http://localhost:8081/test.htm то вся кирилица показывается нормально!!! Помогло добавление этой строки Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.03.2007, 15:45:21
|
|||
|---|---|---|---|
Томкэт, данные из оракла и кирилица |
|||
|
#18+
Раз пост метод мне не нужен - заменил: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. на: RequestDispatcher dispatcher; dispatcher = request.getRequestDispatcher("test.htm"); dispatcher.forward(request, response); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.03.2007, 17:45:46
|
|||
|---|---|---|---|
|
|||
Томкэт, данные из оракла и кирилица |
|||
|
#18+
Прдон за оффтоп. Может пригодится: Доступ к базам данных из Java-программ и проблемы русификации http://www.citforum.ru/internet/articles/java_db.shtml и вырезка из http://www.javaportal.ru/ : Несмотря на то, что сервлеты используют HTTP-протокол, им нет необходимости перезагружать процесс при каждом новом запросе и это также повышает их быстродействие. Однако при использовании сервлетов возникает проблема использования кириллических символов. Стандартный путь прохождения данных тут не действует, потому что Web-сервер при старте запускает так называемый Java-handler, которому передает на выполнение все Java-сервлеты и обменивается вводом-выводом именно с ним через специальную библиотеку классов. Для получения кириллических строк в браузере от Web-сервера, исполняющего сервлеты, необходимо использовать вместо стандартных примитивов ввода/вывода некоторые специальные методы для работы со строками, например: // Определение необходимого кодификатора // в зависимости от используемого типа кодировки String dos = new String(“Cp866”); String win = new String(“Cp1251”); String iso = new String(“8859_5”); String im = new String(“Кириллический текст”); ....................................................... out.println(“”); //out.write(im.getBytes(dos)); out.write(im1.getBytes(win)); //out.write(im2.getBytes(iso)); out.println(“”); Однако, эффективная функция Java - getBytes() не действует при извлечении данных при помощи сервлетов из баз данных. Необходимо применить метод, который уже был использован при работе с базами данных при помощи интерфейса JDBC. Кроме того, файл font.properties в каталоге $JDK_HOME/lib или в специальном каталоге браузера должен быть соответствущим образом настроен. Во многих пакетах Java имеются образцы файла font.properties.ru, который можно взять в качестве основы. При работе с уже русифицированным Web-сервером, например, русской версией Apache, происходит автоматическая перекодировка данных, поступающих из базы данных от сервлета. Сервлет не накладывает никаких ограничений на использование интерфейсов с базой данных. Можно использовать обыкновенный JDBC-ODBC, или специфические драйверы, ориентированные на конкретные SQL-серверы и базы данных. Кроме того, необходимо также на Панели управления в разделе Администратор внести следующие изменения в источники данных (ODBC): в разделе Пользовательский DSN необходимо Добавить MicrosoftAccessDriver, затем необходимо выбрать базу данных и добавить ее к пользовательскому DSN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.03.2007, 20:17:37
|
|||
|---|---|---|---|
|
|||
Томкэт, данные из оракла и кирилица |
|||
|
#18+
to Faqq надо было создать свою тему. Приведённый же текст нельзя одобрить. Во-первых, почему русские буквы называются "кириллическими символами"? Автору текста что слово "руусский" не нравится? Зачем тогда цитировать это существо. Во-вторых, содержание текста не соответствует действительности. Никаких проблем при выводе русских букв в сервлете нет. Во-первых, надо указать кодировку (это нужно для IE): response.setContentType(...) Во-вторых, надо обеспечить соответствие текста этой кодировке (текст может быть в Windows-1251, а хочешь выводить в UTF-8 или наоборот). Тогда надо преобразовывать. Как: ознакомиться с классом java.nio.Charset (требует JDK 1.4 и новее). В примере показан устаревший способ для JDK 1.3. Рекомендую и хранить, и выводить текст только в UTF-8, тогда и проблем не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2146400]: |
0ms |
get settings: |
15ms |
get forum list: |
30ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
70ms |
get topic data: |
23ms |
get forum data: |
6ms |
get page messages: |
76ms |
get tp. blocked users: |
3ms |
| others: | 287ms |
| total: | 526ms |

| 0 / 0 |
