欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot 项目执行出现中文乱码(从本地运行到打war包)

程序员文章站 2024-01-12 14:44:46
...

前言:中文乱码问题

springboot 项目执行出现中文乱码(从本地运行到打war包)

一,本地运行

就是直接使用springboot内嵌的tomcat运行出现中文乱码的问题

(1)参考如下pom.xml的配置文件加入jvm启动参数。

<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>

(2)具体加的位置如下

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <!-- spring-boot:run 中文乱码解决 -->
    <configuration>
        <fork>true</fork>
        <!--增加jvm参数-->
        <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>springloaded</artifactId>
            <version>1.2.5.RELEASE</version>
        </dependency>
    </dependencies>
</plugin>

二,打成war包乱码解决

问题描述
今天在使用 maven 打包spring boot 项目上线时,遇到一个坑,项目本地启动中文是没有乱码的 ,但是当我把打包好的jar ,扔向服务器时运行时,中文全部乱码,开始还以为是liuxn 本身一些配置我没有配置好,后来经过测试,打包的jar 文件本身中文就已经乱码,下面为本人调试修改后可以正常打包可执行jar并中文不乱码的pom.xml配置文件。

<!--  spring boot 项目打包成 可执行 jar 包 必须添加 , 打包方式 找到 当前项目目录  cmd  执行 mvn clean package -->
    <build>
        <plugins>
            <!-- 打包成可执行jar或者war,防止中文乱码,必须要下面这一个插件  -->
            <plugin> 
                <groupId>org.apache.maven.plugins</groupId> 
                <artifactId>maven-compiler-plugin</artifactId> 
                <configuration> 
                <source>1.8</source> 
                <target>1.8</target> 
                <encoding>utf-8</encoding> 
                </configuration> 
            </plugin> 
            <plugin> 
                <groupId>org.springframework.boot</groupId> 
                <artifactId>spring-boot-maven-plugin</artifactId> 
                <configuration> 
                  <!-- 这里为项目启动类-->
                  <mainClass>com.zhenqinl.StartupApplication</mainClass> 
                </configuration> 
                <executions> 
                  <execution> 
                    <goals> 
                      <goal>repackage</goal> 
                    </goals> 
                  </execution> 
                </executions> 
            </plugin> 
        </plugins>
    </build>

三,结尾给大家一个神坑Tomcat报错

严重: Unable to process Jar entry [META-INF/versions/9/module-info.class] from Jar [jar:file:/E:/eclipse-workspace/.metadata/.plugins
/org.eclipse.wst.server.core/tmp1/wtpwebapps/GymSystem/WEB-INF/lib/log4j-api-2.11.1.jar!/] for 
annotationsorg.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19at 
org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:136)at org.apache.tomcat.util.bcel.classfile.ConstantPool.<init>
(ConstantPool.java:59)at 
org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:208)at 
org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:118)at 
org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2055)at 
org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1931)at 
org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfi
g.java:1897)at org.apache.catalina.startup.ContextConfig.pro

本人是直接下载一个Tomcat解决问题的,出现这个问题就是Tomcat的问题。