开发者

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

目录
  • springboot Controller直接返回String类型乱码
    • 学习springboot路上遇到的一个小坑
    • 解决办法
  • 总结

    springboot Controller直接返回String类型乱码

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

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

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

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

    解决办法

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

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

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

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

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

    在自定义的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目前在网络上似乎没有解决方案
            // 百度,谷歌,各大论坛等。你可以试试去掉。
            addDefaultHttpMessageqdNAnZkqyoConverters(converters);
        }
     
        @Override
        public void configureContentNegotiation(ContentNegotiationConfigurer configurer)python {
            configurer.favorPathExtension(false);
        }

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

    现在测试下

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

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

    总结

    以上为个人经验,希望能给大编程客栈家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜