java maven 项目java代码中的中文乱码,数据库中的返回中文不乱码

现象

在本地跑起来项目没有问题,但是在线上打包上线后,java代码中的中文,如异常信息,enum等会乱码,而数据库中的数据读写都没有问题。指定file.encoding无效

原因

在maven编译的时候,没有指定编码导致,在本地,maven 打包走的平台编码是GBK,而在线上,用的zadig打包,走的是(Default locale: en_US, platform encoding: ANSI_X3.4-1968)的一个编码。故中文乱码

解决方案

maven编译时候指定编码为utf-8

 

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

注:每个子模块也要指定编码

posted on 2023-03-14 08:48  cococooder  阅读(87)  评论(0编辑  收藏  举报