Codificación de caracteres Java Spring Resttemplate

Estoy usando el Java Spring Resttemplate para obtener un json a través de una solicitud de obtención. El JSON que estoy recibiendo tiene en lugar de caracteres especiales slike ü ö ä o ß algunas cosas raras. Así que supongo que algo anda mal con la encoding de caracteres. No puedo encontrar ninguna ayuda en internet. El código que estoy usando por ahora es:

String json = restTemplate.getForObject( overPassStatementPostCode, String.class, params); 

Solo necesita agregar el StringHttpMessageConverter a los convertidores de mensajes de la plantilla:

 RestTemplate template = new RestTemplate(); template.getMessageConverters() .add(0, new StringHttpMessageConverter(Charset.forName("UTF-8"))); ResponseEntity response = template.exchange(endpoint, method, entity, Object.class); 

Primero probé el método de @beerbajay, pero no ayuda. Finalmente, lo resuelvo a continuación.

  RestTemplate template = new RestTemplate(); // template.getMessageConverters() // .add(0, new StringHttpMessageConverter(Charset.forName("UTF-8"))); HttpHeaders headers = new HttpHeaders(); headers.setAccept(newArrayList(MediaType.APPLICATION_JSON)); ResponseEntity response = template.exchange(url, HttpMethod.GET, new HttpEntity(headers), String.class); 

Tengo el mismo problema en este caso, después de una búsqueda, tengo este enlace: https://gist.github.com/knight1128/66f3e4817ab35c7397fd

Su solución está trabajando para mí:

 package com.google.locationlab; import com.google.common.collect.Lists; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Test; import org.springframework.http.*; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; import java.net.URI; import java.nio.charset.Charset; import java.util.List; public class PortalRestTemplateIntegrationTest { private Log logger = LogFactory.getLog(PortalRestTemplateIntegrationTest.class); @Test public void test() throws Exception { RestTemplate restTemplate = new RestTemplate(); HttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter(Charset.forName("UTF-8")); List> httpMessageConverter = Lists.newArrayList(); httpMessageConverter.add(stringHttpMessageConverter); restTemplate.setMessageConverters(httpMessageConverter); URI targetUrl= UriComponentsBuilder.fromUriString("http://portal.net") .path("search") .queryParam("q", "잠실역") .build() .toUri(); HttpHeaders headers = new HttpHeaders(); Charset utf8 = Charset.forName("UTF-8"); MediaType mediaType = new MediaType("text", "html", utf8); headers.setContentType(mediaType); headers.set("User-Agent", "mozilla"); headers.set("Accept-Language", "ko"); // gzip 사용하면 byte[] 로 받아서, 압축을 풀고 decoding 해야 한다. HttpEntity entity = new HttpEntity("parameters", headers); ResponseEntity responseEntity = restTemplate.exchange(targetUrl.toURL().toString(), HttpMethod.GET, entity, String.class); String result = responseEntity.getBody(); logger.info(result); } }