我是靠谱客的博主 细腻唇彩,最近开发中收集的这篇文章主要介绍SpringBoot乱码问题解决,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

原文链接:莫问博客-SpringBoot乱码问题解决

说明

   使用springboot开发理论上是不会出现乱码的,因为springboot默认编码为UTF-8,但是当客户端编码和服务器编码格式不一致时是会导致乱码的,所以这种情况首先需要和客户端约定请求编码格式,这里我们强制约定为UTF-8

一、修改springboot配置文件,以application.properties为例,增加如下配置

spring.http.encoding.force=true
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
server.tomcat.uri-encoding=UTF-8

二、当使用springboot模板进行页面开发时,模版解析乱码

       2,1、不推荐的做法是在controller的@RequestMapping中强行设置编码,如

                @RequestMapping(value="/test", produces="text/html;charset=UTF-8" )

       2.2、实现WebMvcConfigurer类来配置编码,2.0以下的springboot可以通过继承WebMvcConfigurerAdapter来修改,以WebMvcConfigurer为例,代码如下

package com.mybatis.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import java.nio.charset.Charset;
import java.util.List;
/**
* @author liuxiaoding
* @Date 2019/11/20
**/
@Configuration
public class EncodeConfig implements WebMvcConfigurer {
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(responseBodyConverter());
}
@Bean
public HttpMessageConverter<String> responseBodyConverter() {
StringHttpMessageConverter converter = new StringHttpMessageConverter(
Charset.forName("UTF-8"));
return converter;
}
}

乱码总结:springboot由于约定大于配置的特性,理论上不会出现乱码,如果出现例请按照文本一和二来配置

三、springboot中使用properties文件乱码

       原因一、properties文件本身编码不对,不是utf8,

                      以idea为例在idea使用的utf-8,而properties文件使用的ascii码。点击File-Setting->File Encodings进行设置

       原因二、当原因一的解决方案不生效时可以试试读取properties设置编码格式,

                     @Component
                     @ConfigurationProperties(prefix = "test")
                     @PropertySource(value = {"classpath:test.properties"}, encoding = "utf-8")

      

最后

以上就是细腻唇彩为你收集整理的SpringBoot乱码问题解决的全部内容,希望文章能够帮你解决SpringBoot乱码问题解决所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部