对春季启动中 api 的返回类型的本地波兰字符支持



我正在使用springboot版本= 1.5.13.RELEASE。如果我使用响应实体中的对象返回数据,如下所示,则返回字符 Ã 作为 Ã\u008d 如果我通过第二种方式使用 ObjectMapper 将对象转换为字符串来返回相同的内容,并将其作为字符串的响应实体返回,那么它会正确返回字符 Ã。你能不能请问如果我在响应实体中使用对象作为输出,为什么会出现问题。我是否需要进行任何配置。我也尝试使用(.contentType(MediaType.APPLICATION_JSON_UTF8((使用UTF-8的MimeType,但它也不起作用。 请帮忙

1( 返回响应实体中的对象

 @GetMapping("v1/testAPI")
            @CrossOrigin(origins = "*") 
            public ResponseEntity<TESTClass> gettstDetails(@RequestParam(value = "param", required = false) String param){
    TESTClass objTESTClass= new TESTClass();
 objTESTClass.setOutputA("-BRASÃLIA BR");
 return ResponseEntity.ok(objTESTClass) ;
        }

1( 在响应实体中返回字符串

     @GetMapping("v1/testAPI")
                    @CrossOrigin(origins = "*") 
                    public ResponseEntity<String> gettstDetails(@RequestParam(value = "param", required = false) String param){
            TESTClass objTESTClass= new TESTClass();
         objTESTClass.setOutputA("-BRASÃLIA BR");
     ObjectMapper objectMapper = new ObjectMapper();
return ResponseEntity.ok( objectMapper.writeValueAsString(objTESTClass));
                }

我的测试克拉斯如下所示

public class TESTClass{
    @JsonProperty("outputA")
    private String outputA;
    @JsonProperty("outputB")
    private String outputB;
    public String getOutputA() {
        return outputA;
    }
    public void setOutputA(String outputA) {
        this.outputA= outputA;
    }
    public String getOutputB() {
        return outputb;
    }
    public void setOutputB(String outputb) {
        this.outputB= outputB;
    }
}

使用以下代码解决问题,然后遵循以下线程Java Spring resttemplate 字符编码

RestTemplate

objRestTemplate = new RestTemplate((;

objRestTemplate.getMessageConverters()
                .add(0, new StringHttpMessageConverter(Charset.forName(UaofConstants.UTF_8)));

最新更新