RestTemplate 消息转换器(解析错误),中文乱码问题 发表于 2021-01-26 | 分类于 ---Java | 1234567891011121314151617181920212223242526RestTemplate restTemplate = new RestTemplate();/* 支持响应 content type [text/html;charset=UTF-8] 1. 拿到所有转换器 2. 得到 MappingJackson2HttpMessageConverter 3. 给 MappingJackson2HttpMessageConverter 设置支持的 MediaTypes */restTemplate.getMessageConverters().stream() .filter(c -> c instanceof MappingJackson2HttpMessageConverter) .forEach(c -> ((MappingJackson2HttpMessageConverter) c).setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON, MediaType.APPLICATION_OCTET_STREAM, MediaType.TEXT_HTML, MediaType.TEXT_PLAIN)));/* 支持 UTF-8(StringHttpMessageConverter 默认:Charset DEFAULT_CHARSET = StandardCharsets.ISO_8859_1)*/StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter(StandardCharsets.UTF_8);stringHttpMessageConverter.setWriteAcceptCharset(true);for (int i = 0; i < restTemplate.getMessageConverters().size(); i++) { if (restTemplate.getMessageConverters().get(i) instanceof StringHttpMessageConverter) { restTemplate.getMessageConverters().remove(i); restTemplate.getMessageConverters().add(i, stringHttpMessageConverter); }}return restTemplate;