2015-06-10 10 views
3

При получении данных из одной из цитат веб-службы («) появляется как (?), Когда я использую шаблон отдыха. Я протестировал веб-службу в почтальоне на хроме и дал правильные символы. Я пробовал кодирование UTF . -8, но не успехПроблема с кодировкой RestTemplate

Я проверил следующее кодирующими от поставщика услуг веб:

Cache-Control → частного Соединения → близко Content-Encoding → GZIP Content-Length → 3407 Content-Type → text/xml; charset = ISO-8859-1 Дата → ср, 10 июн 2015 13:35:53 GMT Сервер → Google Search Appliance Vary → Accept-Encoding X-Frame-Options → SAMEORIGIN x-content-type-options → nosniff x-xss-protection → 1; Режим = блок

Вот мой код:

RestTemplate restTemplate = новый RestTemplate();

HttpHeaders headers = new HttpHeaders(); 
    MediaType mediaType = new MediaType("text", "xml", Charset.forName("ISO-8859-1")); 

    headers.set("Accept", "text/xml; charset=ISO-8859-1"); 
    headers.setContentType(mediaType); 
    headers.setAcceptCharset(Arrays.asList(Charset.forName("UTF-8"))); 
    headers.setAccept(Arrays.asList(mediaType)); 

    ResponseEntity<String> res = restTemplate.exchange(gsaSearchUrl, HttpMethod.GET, new HttpEntity<String>(headers), String.class); 


    System.out.println(res.getBody()); 

ответ

0

Вам необходимо добавить HttpMessageConverter для кодированных строк UTF-8 в ваш RestTemplate. Что-то вроде этого сделают это для вас:

restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8"))); 
Смежные вопросы