Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Проблемы с кодировкой


Автор: lihusha 26.6.2009, 10:38
Здравствуйте , уважаемые.

Помогите , пожалуйста решить маленькую проблемку с кодировкой.
Есть проект примерно такого содержания.
Есть клиент(апплет) и сервер (томкат, сервлет)

Клиент отправляет серверу введенный в его(клиента) текстовое поле. Текст должен набираться кириллицей(но не только).
Отправка клиентом текста происходит примерно так

Код

//message - набранное сообщение , String
String data = URLEncoder.encode("message", "UTF-8")+"="+URLEncoder.encode(message, "UTF-8");
//serverUrl - адрес сервера, String
server = new URL(serverUrl);
HttpURLConnection = (HttpURLConnection) server.openConnection();
connection.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
writer.write(data);
writer.flush();
writer.close();


Сервер принимает так

Код

String message = request.getParameter("message");


даже после раскодировки(не уверен , надо ли ее вообще делать)

Код

String dMessage = URLDecoder.decode(message, "UTF-8");


сообщение содержить кракозяблы

Причем , это происходит в работе на хостинге . На моей локальной машине под NetBeans -- все нормально , сервер получает русские буквы


Кодировка браузера по умолчанию -- UTF-8.

Как получить текст ?

Автор: kez 26.6.2009, 13:01
попробуйте в сервлете выставить
Код

response.setCharacterEncoding("UTF-8");

перед получением из response данных.
если первое не помогло, то попробуйте в настройках томката в config/server.xml изменить
Код

    <Connector port="8009" 
               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="UTF-8"/>

и в остальных Connector тоже.

Автор: lihusha 26.6.2009, 17:10
kez, первое не помогло.

Насчет второго -  на данном хостинге , думаю , нету таких возможностей

Повторюсь -- на локальной машине в отладчике все работает корректно

Автор: lihusha 27.6.2009, 17:10
kez, как Вы думаете , залезть в настройки томката на хостинге можно ?
Понимаю , что ответ на вопрос очень относительный , но хотелось бы услышать , насколько реально менять те или иные настройки.
Перепробовал всё - дома работает , на хостинге -- ни в какую

Автор: kez 27.6.2009, 20:00
настройки на хосте вам никто поправить не даст.
дома используется тот же сервер приложений?(томкат, глассфиш, жБосс)
что у вас высвечивается? "кракозябры" или вопросики?

Автор: lihusha 27.6.2009, 22:15
В том то и дело : дома -- томкат , там все работает без проблем
На хостинге -- тоже томкат, высвечиваются вопросики

Автор: lihusha 28.6.2009, 00:21
Разобрался , теперь сервер может отвечать русскими буквами .
Оказывается , консоль  out на хостинге не знает русских букв , только "????"(а может , и знает , это уже не важно)

Спасибо Вам,kez!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)