Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/16: Рейтинг темы: голосов - 16, средняя оценка - 4.81
0 / 0 / 1
Регистрация: 11.07.2008
Сообщений: 11
1

Проблема кодировоки Tomcat и Java

11.07.2008, 17:27. Показов 3000. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте
Не работал с Tomcat и Java. Работал с Apache и технологиями типа Perl php итп . Проблем с кодировоками вроде особых не было ...
не могли бы вы пояснить когда при использовании Java технологий такие поблемы у меня появятся и как лучше с ними бороться - в какойто из тем шла речь о библиотеке com.NationalServlets прикручиваемой к Tomcat - что это за зверь ? и актуальлен ли он только под Linux ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.07.2008, 17:27
Ответы с готовыми решениями:

Проблема переноса с Tomcat 4 на Tomcat 5
Господа подскажите решение, у меня возникла проблема с Tomcat 5 (Tomcat 4 все работало). При...

Проблема с Tomcat
поставил Томкат (tomcat-4.1.27-13.i386.rpm) под Red-Hat, запускается нормально без всяких ошыбок,...

Проблема с сервером Tomcat
поставил Томкат (tomcat-4.1.27-13.i386.rpm) под Red-Hat, запускается нормально без всяких ошыбок,...

Tomcat + Java + Selenium
Доброе время суток. Имеется проект Java. В нем с использованием Selenium автоматизируются кое-какие...

13
0 / 0 / 0
Регистрация: 06.07.2008
Сообщений: 22
13.07.2008, 10:07 2
Проблемы возникнут при попытке передать из html-формы строки в кириллической кодировке. Вместо русских букв в Tomcat'е придут '???'. Решение этой проблемы - использование пакета com.NationalServlets, все о нем - на servlets.chat.ru . И речь не об его использовании в Tomcat'е, а об его использовании в Java-коде.
Как ведет себя Tomcat под Windows, затрудняюсь сказать, есть подозрения, что так же.
0
0 / 0 / 1
Регистрация: 11.07.2008
Сообщений: 11
13.07.2008, 11:24  [ТС] 3
То есть решения для уже разработанной прилаги нет?

Есть web прилага , которая суть которой грубо говоря сводится к заполнению html формы и сохранению заполненного в БД. При заполнении формы латиницей все ок, при использовании кирилицы - ????? в БД идут Код прилаги править нет возможности. Есть ли какое либо решение позволяющее фиксировать данное?

Дописать чтото свое к прилаги фиксирующее баг или средствами веб сервера?
0
Rina
13.07.2008, 11:31 4
У ьеня была такая проблема и править пришлось сам код.
0 / 0 / 0
Регистрация: 06.07.2008
Сообщений: 22
13.07.2008, 11:37 5
Использование NationalServlets предполагает изменение Java-кода (вместо request будет использоваться экземпляр другого класса).
Если не получается править код, то, может, получится сменить Tomcat на что-нибудь другое? Resin, например.
0
4 / 4 / 0
Регистрация: 22.10.2007
Сообщений: 234
13.07.2008, 12:03 6
У меня такая же проблема с Tomcat и Java: ну никак не могу нормально выдрать из html-формы русские символы ( .....
0
Eugeny
14.07.2008, 13:32 7
Чтобы нормально принимать русские буквы из html формы надо поставить Tomcat4.0. В начале метода doPost() написать: request.setCharacterEncoding('Cp1251');
При компиляции использовать библиотеку c:/tomcat/common/lib/servlet.jar.
0 / 0 / 1
Регистрация: 11.07.2008
Сообщений: 11
15.07.2008, 11:15  [ТС] 8
Из всего вышесказанного получается что при невозможности исправления кода остается менять сервер

попробовать можно
0
Rina
15.07.2008, 13:31 9
Зачем менять сервер ведь правится всего несколько строк кода ?
sereja
15.07.2008, 17:52 10
Действительно, править немного. Есть 2 решения:
1.Для *.jsp в начало страницы нужно вставить
Код
<%@ page contentType='text/html; charset=windows-1251' %>
либо, если это не помогает то
Код
<%@ page contentType='text/html;%>
2. Для сервлетов
Код
response.setLocale(new java.util.Locale('ru', 'ru', ''));
response.setContentType('text/html; charset=windows-1251');
или (почти аналогичный эффект)
Код
private static final String CONTENT_TYPE = 'text/html; charset=windows-1251';
............................
response.setContentType(CONTENT_TYPE);
.
Кстати, у меня такие проблемы возникали и при возвращении значений из базы данных, и при распозновании содержимого форм.(В этом случае я использовал только
Код
CONTENT_TYPE = 'text/html'
, без
Код
 charset=windows-1251
)
Eugeny
20.07.2008, 09:45 11
Менять сервер на Tomcat 4.0 надо для поддержки спецификации сервлетов 2.3. Только в ней есть метод setCharacterEncoding(). Метод setContentType() устанавливает кодировку только для вывода.
grand
21.07.2008, 15:14 12
я делаю так
String NAMEBANK=new String(request.getParameter('NAMEBANK').getBytes(requestEnc),clientEnc);
где
protected final static String requestEnc='ISO-8859-1';
protected final static String clientEnc='KOI8-R';

страницы я выдаю в KOI-8, а в базе данные хранятся в виндовой кодировке 1251
0 / 0 / 1
Регистрация: 11.07.2008
Сообщений: 11
22.07.2008, 22:40  [ТС] 13
Проблемы возникли с базой

mysql win2000 JSP кодировка - не могу извлечь SELECTom из БД русские поля -они приходят в кодировке Cirilic(DOS) в меню IE

Использую JBuilder. т.е. JDK (jdk1.3.1) и все прочее пришло с ним

Web Server - Apache 1.3 и Tomcat jakarta-tomcat-3.2.3
Редактирую JSP в HomeSite-e

Проблема в следующем - при выполнении запроса к базе несмотря на
<%@page contentType='text/html; charset=Windows-1251' %>
и
Class.forName('org.gjt.mm.mysql.Driver');

Properties connInfo = new Properties();
connInfo.put('user', '1');
connInfo.put('password', '1');
connInfo.put('useUnicode', 'true');
connInfo.put('characterEncoding', 'Cp1251');

Имеем в браузере данные из базы не в кодировке cp1251 а в кодировке по терминологии браузера IE Cirilic(DOS) - вероятно это latin1 ......
пробовал ставить
default-character-set=win1251
в [mysqld] и [client] - ничего не меняется
данные в базу вводил с командной строки из утилиты mysql.exe. распечатка команды status в mysql приведена ниже.
Вероятно у меня неправильное сочетание кодировки в базе и Jave или я не правильно конвертирую строки в Jave. подскажите плз корректные настройки или действия. Сразу говорю доку
http://people.comita.spb.ru/us... chars.html
я читал. И вроде сделал все по примеру с
http://example.inc.ru/
ней и по примеру с- но вероятно проблема в ДНК .....
Необходимо получить отображение на странице данных из базы в кодировке windows-1251 и корректно работающий INSERT с SELECT, INSERT из javы тоже не работает....

Вот код JSP
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<%@page import='java.sql.*'%> 
<%@page import='java.io.*'%> 
<%@page import='java.util.*'%> 
<%@page contentType='text/html; charset=Windows-1251' %> 
 
<html> 
 
<body> 
 
<% 
 
try { 
Class.forName('org.gjt.mm.mysql.Driver'); 
 
Properties connInfo = new Properties(); 
connInfo.put('user', '1'); 
connInfo.put('password', '1'); 
connInfo.put('useUnicode', 'true'); 
connInfo.put('characterEncoding', 'Cp1251'); 
 
Connection con = DriverManager.getConnection('jdbc:mysql://localhost/compbook', connInfo); 
Statement st = con.createStatement(); 
/* do query */ 
ResultSet rs = st.executeQuery('select id,name,questCount from test'); 
 
%> 
 
<TABLE>11 
<tr><td>p1</td><td>p2</td></tr> 
<% while (rs.next()) { %> 
<TR><% for(int i=2;i<=3;i++){%> 
<TD><%= new String(rs.getString(i).getBytes('latin1'),'Cp1251') %></TD> 
<TD><%= new String( rs.getString(i) ) %></TD> 
<% } %> 
</TR> 
<% } %> 
 
</TABLE> 
 
<% 
rs.close(); 
st.close(); 
} catch (Exception e) { 
throw (new ServletException(e)); 
} 
 
%>
Настройки Mysql
mysql>status дает

Connection id: 1
Current database: compbook
Current user: ODBC@localhost
Server version: 3.23.49-nt
Protocol version: 10
Connection: . via named pipe
Client characterset: latin1
Server characterset: latin1
UNIX socket: MySQL
Uptime: 3 hours 6 min 59 sec
0
0 / 0 / 0
Регистрация: 17.07.2008
Сообщений: 6
22.07.2008, 23:09 14
всё это хорошо когда приходится работать токо с русскими и англицкими
буковками а если нада ишо другие так у клиента вдруг не оказывается кодировочки koi8-r.

Я делаю так. 1)На клиенте странички в UTF-8
2)в базе тож
3)и отдаю из базы тож в UTF-8
(токо когда конектюсь к базе то говорю что мне
нужны данные в UTF-8)
вот и всё. И тогда довольны и немцы и китайцы и русские не в обиде.
Для того-то и был придуман Unicode чтоб в инете его юзать.

--------------- Ребята, давайте жить дружно! (с) Кот Леопольд.
0
22.07.2008, 23:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.07.2008, 23:09
Помогаю со студенческими работами здесь

Проблема с элементом Realm (Tomcat 4.1.24)
Прописываю в файле server.xml следующее: &lt;Realm...

Проблема настройки секьюрити в Tomcat
Добрый день! Возникла проблема с настройкой секьюрити. Произведеные мной изменения: В фале...

Linux apache tomcat 7 java 8
Здравствуйте! Пытаясь пофиксить баг, подобный этому полез в /etc/tomcat7/conf.. и обнаружил, что...

Web-app Java Tomcat
Доброго времени суток. Не уверен что пишу в соответствующий раздел, но все же Имеется веб...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru