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


Автор: Матильда 28.7.2014, 11: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 с кириллицей. 

Автор: sergioK1 28.7.2014, 23:15
Цитата(Матильда @ 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" />


Автор: Матильда 29.7.2014, 10:48
Цитата

На сервере 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);


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