java打成jar包,在windows上运行出现乱码

今天做项目的时候遇到一个很头疼的问题——无论在Java代码中如何统一编码为UTF8,在IDE中运行是完全没问题的,但打包成Jar通过Bash和CMD运行,都会出现中文乱码问题。起初是觉得Java编译时编码出现了问题,但经过几小时的排查,终于找到中文乱码问题的根源——cmd/bash默认的编码是GBK。

 

乱码共有两处:一处是控制台打印日志乱码,另一处是返回数据到前台,乱码。

解决:

控制台日志乱码:

打开cmd,输入以下命令

chcp 65001

这样就可以更改cmd的编码为UTF-8了。

数据结果乱码:

运行时,指定编码,启动命令改为:

java -Dfile.encoding=utf-8 -jar cpw-0.0.1-SNAPSHOT.jar

 

posted @ 2019-09-23 17:02  Dream's  阅读(7444)  评论(2编辑  收藏  举报