Java Spring resttemplate 字符编码

我正在使用Java Spring Resttemplate通过get请求获取json。我得到的JSON有一些奇怪的东西,而不是特殊字符slike ü ö ä或ß。所以我想字符编码有问题。我无法在互联网上找到任何帮助。我现在使用的代码是:

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

答案 1

您只需要将 添加到模板的消息转换器中:StringHttpMessageConverter

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

答案 2

首先我尝试了@beerbajay的方式,但无济于事。最后,我通过以下方式解决它

        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<String> response = template.exchange(url, HttpMethod.GET, new HttpEntity<String>(headers), String.class);