【问题标题】:Spring RestController produces charset=UTF-8Spring RestController 产生 charset=UTF-8
【发布时间】:2017-02-08 20:29:33
【问题描述】:

自从更新到最新版本的 Spring-Boot (1.4.1) 后,我注意到在我的 RestControllers 中,即使我明确地将生成的媒体类型设置为“application/json”,它现在正在生成“application/ json;charset=UTF-8"

控制器:

@RestController
@RequestMapping(value = "/api/1/accounts", consumes = "application/json", produces = "application/json")
public class AccountController {
.....

响应头

Content-Type →application/json;charset=UTF-8

现在是否在其他地方配置了覆盖 RequestMapping 设置?

【问题讨论】:

标签: java spring-mvc spring-boot


【解决方案1】:

根据上面的 OrangeDog 评论, MappingJackson2HttpMessageConverter 处理字符集。如果消息中未指定任何字符集(即通过 RequestMapping 生成配置),则最近已对此进行了更新以添加默认字符集

这可以通过实现以下 bean 并将 charSet 设置为 null 来覆盖:

@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
    MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter();
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
    jsonConverter.setObjectMapper(objectMapper);
    jsonConverter.setDefaultCharset(null);
    return jsonConverter;
}

【讨论】:

    猜你喜欢
    • 2020-10-26
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 2013-05-09
    • 2023-02-14
    • 2019-12-22
    • 2012-02-22
    • 1970-01-01
    相关资源
    最近更新 更多