springboot Controller直接返回String类型带来的乱码问题及解决

 更新时间:2024年11月19日 08:55:41   作者:墨语wcy  
文章介绍了在Spring Boot中,当Controller直接返回String类型时可能出现的乱码问题,并提供了解决办法,通过在`application.yaml`中设置请求和响应的编码格式,并在自定义配置类中进行配置,可以有效解决这一问题

springboot Controller直接返回String类型乱码

学习springboot路上遇到的一个小坑

就是controller在响应时如果直接返回String类型,得到的将是一串???的乱码

解决办法

就是配置请求个响应的编码格式

首先在 application.yaml 内设置 请求的编码格式

# Tomcat specifics
tomcat:
  uri-encoding: UTF-8

然后设置response响应的编码格式

在自定义的springboot配置类内加入

    @Bean
    public HttpMessageConverter<String> responseBodyConverter() {
        return new StringHttpMessageConverter(Charset.forName("UTF-8"));
    }
 
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(responseBodyConverter());
        // 这里必须加上加载默认转换器,不然bug玩死人,并且该bug目前在网络上似乎没有解决方案
        // 百度,谷歌,各大论坛等。你可以试试去掉。
        addDefaultHttpMessageConverters(converters);
    }
 
    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        configurer.favorPathExtension(false);
    }

现在测试下

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java中的CompletableFuture原理与用法

    Java中的CompletableFuture原理与用法

    CompletableFuture 是由Java8引入的,这让我们编写清晰可读的异步代码变得更加容易,该类功能比Future 更加强大,在Java中CompletableFuture用于异步编程,异步通常意味着非阻塞,运行任务单独的线程,与主线程隔离,这篇文章介绍CompletableFuture原理与用法,一起看看吧
    2024-01-01
  • java实现插拔式加载用户自定义插件

    java实现插拔式加载用户自定义插件

    本文主要介绍了DatalinkX通过自定义URLClassLoader实现插件化加载外部数据源jar包,突破SPI机制依赖限制,使用户无需修改源码即可扩展数据源同步功能,达成动态插拔效果
    2025-09-09
  • 解决一个JSON反序列化问题的办法(空字符串变为空集合)

    解决一个JSON反序列化问题的办法(空字符串变为空集合)

    在平时的业务开发中,经常会有拿到一串序列化后的字符串要来反序列化,下面这篇文章主要给大家介绍了如何解决一个JSON反序列化问题的相关资料,空字符串变为空集合,需要的朋友可以参考下
    2024-03-03
  • 解析MyBatis源码实现自定义持久层框架

    解析MyBatis源码实现自定义持久层框架

    这篇文章主要介绍了手撕MyBatis源码实现自定义持久层框架,涉及到的设计模式有Builder构建者模式、⼯⼚模式、代理模式,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • 浅谈java中String的两种赋值方式的区别

    浅谈java中String的两种赋值方式的区别

    这篇文章主要介绍了浅谈java中String的两种赋值方式的区别。简单介绍了两种赋值方式,然后进行了实例分析,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Spring全局异常捕获不生效问题的解决办法

    Spring全局异常捕获不生效问题的解决办法

    Spring项目全局异常处理不生效,登录接口报错异常信息被直接返回到接口响应中,本文给大家介绍了Spring全局异常捕获不生效问题的解决办法,文中有详细的图文介绍,需要的朋友可以参考下
    2024-04-04
  • Spring基础之AOP的概念介绍

    Spring基础之AOP的概念介绍

    AOP是Spring的关键特性之一,虽然Spring的IOC特性并不依赖于AOP,本文重点介绍AOP编程中的一些术语,这些术语不仅仅局限于Spring,它适用于所有的AOP编程,感兴趣的朋友一起看看吧
    2022-06-06
  • Java中的接口以及常见的Cloneable接口用法

    Java中的接口以及常见的Cloneable接口用法

    这篇文章主要介绍了Java中的接口以及常见的Cloneable接口用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • java double 溢出报错的问题解决

    java double 溢出报错的问题解决

    在进行Java开发时,经常会遇到数字溢出的问题,这个问题在很多程序中都非常常见,尤其是在进行数值计算的时候,本文就来介绍一下如何解决,感兴趣的可以了解一下
    2025-09-09
  • 老生常谈java中cookie的使用

    老生常谈java中cookie的使用

    下面小编就为大家带来一篇老生常谈java中cookie的使用。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12

最新评论