我正在使用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 字符编码
RestTemplateobjRestTemplate = new RestTemplate((;
objRestTemplate.getMessageConverters()
.add(0, new StringHttpMessageConverter(Charset.forName(UaofConstants.UTF_8)));