问题:一个用spring boot开发的小项目,需要调用第三方接口,该调用通过HTTP请求调用,UTF-8编码,项目打jar包发布到生产后,插入到数据库中的数据出现中文乱码。检查过程记录如下,希望可以帮到其他人。

第一步,检查编译环境的编码:

File --> Setttings --> Editor --> File Encodings,这下边设置三个地方的编码格式

spring boot项目中文乱码

第二步,可配置JDK全局编码:

如图在系统环境变量中增加一个变量:JAVA_TOOL_OPTIONS 值为 -Dfile.encoding=UTF-8

spring boot项目中文乱码

第三步,设置maven打包插件的编码

<plugin>
   <!--打包成可执行jar-->
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-maven-plugin</artifactId>
   <configuration>
      <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
   </configuration>
   <executions>
      <execution>
         <goals>
            <goal>repackage</goal>
         </goals>
      </execution>
   </executions>
</plugin>

第四步,设置HTTP请求编码以及spring boot内置tomcat的编码

# 配置编码集
spring.http.encoding.charset=UTF-8
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.force=true
spring.http.encoding.enabled=true
以上步骤无先后顺序,仅仅记录我的排查过程,我是死在第四步的,设置好tomcat后,乱码问题解决。

相关文章: