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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> REST. Проблема с кириллицей 
V
    Опции темы
Матильда
Дата 28.7.2014, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Доброго времени суток.

Создаю заявку с помощью REST:

Код

PostMethod mPost = new PostMethod(BASE_URI);
StringBuilder content = new StringBuilder();
content.append(...);
Part[] parts = new Part[]{new StringPart("content", content.toString())}; 
mPost.setRequestEntity(new MultipartRequestEntity(parts, mPost.getParams()));
HttpClient client = new HttpClient();
statusCode = client.executeMethod(mPost);

Заявки создаются, но в тех полях, которые заполнены кириллицей, в базу сетятся вопросы.

Пробовала для полей с кириллицей сделать так: 
Код

URLEncoder.encode(... , "UTF-8");

В базу записалось: %2521%2521%2521%2B%25D0%25A2%25D1%2580%25D0%25B8%2B%25D0%25BF%25D0%25BE%25D1%2580%25D0%25BE%25D1%2581%25D0%25B5%25D0%25BD%25D0%25BA%25D0%25B0 14-%25D1%258F%2B%25D0%25BB%25D0%25B8%25D0%25BD%25D0%25B8%2

Пробовала еще такие варианты:
Код

mPost.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");

mPost.setRequestHeader("Content-Type", "text/plain; charset=UTF-8");

В обоих случаях получаю:
userInfo=RT/4.0.19 200 Ok

# Required: id, Queue

id: ticket/new
Queue: Telematics
Requestor: rssuser
Subject: 
Cc:
AdminCc:
Owner: 
Status: new
Priority: 0
InitialPriority: 0
FinalPriority: 0
TimeEstimated: 0
Starts: 2014-07-22 13:39:45
Due: 

2014-07-23 13:39:45
Attachment: 
Text: 

Помогите, пожалуйста, подружить REST с кириллицей. 

PM   Вверх
sergioK1
Дата 28.7.2014, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Матильда @ 28.7.2014,  10:06)
Доброго времени суток.

Создаю заявку с помощью REST:

Код

PostMethod mPost = new PostMethod(BASE_URI);
StringBuilder content = new StringBuilder();
content.append(...);
Part[] parts = new Part[]{new StringPart("content", content.toString())}; 
mPost.setRequestEntity(new MultipartRequestEntity(parts, mPost.getParams()));
HttpClient client = new HttpClient();
statusCode = client.executeMethod(mPost);

Заявки создаются, но в тех полях, которые заполнены кириллицей, в базу сетятся вопросы.

Пробовала для полей с кириллицей сделать так: 
Код

URLEncoder.encode(... , "UTF-8");

В базу записалось: %2521%2521%2521%2B%25D0%25A2%25D1%2580%25D0%25B8%2B%25D0%25BF%25D0%25BE%25D1%2580%25D0%25BE%25D1%2581%25D0%25B5%25D0%25BD%25D0%25BA%25D0%25B0 14-%25D1%258F%2B%25D0%25BB%25D0%25B8%25D0%25BD%25D0%25B8%2

Пробовала еще такие варианты:
Код

mPost.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");

mPost.setRequestHeader("Content-Type", "text/plain; charset=UTF-8");

В обоих случаях получаю:
userInfo=RT/4.0.19 200 Ok

# Required: id, Queue

id: ticket/new
Queue: Telematics
Requestor: rssuser
Subject: 
Cc:
AdminCc:
Owner: 
Status: new
Priority: 0
InitialPriority: 0
FinalPriority: 0
TimeEstimated: 0
Starts: 2014-07-22 13:39:45
Due: 

2014-07-23 13:39:45
Attachment: 
Text: 

Помогите, пожалуйста, подружить REST с кириллицей.

На сервере UTF-8 прописали? В файле конфигурации  должно  быть что то типа  ,

Код

  <Connector port="8080" protocol="HTTP/1.1"
                 connectionTimeout="20000"
                 redirectPort="8443" 
                 URIEncoding="UTF-8" />


PM MAIL   Вверх
Матильда
Дата 29.7.2014, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

На сервере UTF-8 прописали?

Да.

Заработало так:
Код

...
StringPart stringPart = new StringPart("content", content.toString());
stringPart.setContentType("text/plain");
stringPart.setCharSet("UTF-8");

Part[] parts = new Part[]{stringPart}; 
mPost.setRequestEntity(new MultipartRequestEntity(parts, mPost.getParams()));
HttpClient client = new HttpClient();
statusCode = client.executeMethod(mPost);


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

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

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


 




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


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

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