问题:
无论在Java代码中如何统一编码为UTF8,在IDE中运行是完全没问题的,但打包成Jar通过Bash和CMD运行,都会出现中文乱码问题。
原因:
cmd/bash默认的编码是GBK。
解决方法:
一、设定cmd的编码为utf-8
打开cmd,输入以下命令:
chcp 65001
这样既可以更改cmd的编码为UTF-8了。
以下是常用的cmd编码,如图:
二、规定执行java时的编码方式
在cmd下,常见运行Jar包的命令如下:
java -jar project.jar
但这样可能会使得java运行时编码不正确导致的报错,这时候我们可以将运行Jar时,指定编码参数
java -Dfile.encoding=utf-8 -jar project.jar
三、将以上命令打包成bat
每次启动项目都要进行如上两步的话,其实会非常麻烦,我们可以将以上两部打包成bat批处理文件,具体步骤如下
1 在Jar的目录下创建一个txt文件,通过记事本打开
2 将以上命令写入txt文件中,保存
3 修改msgSystemStart.txt为msgSystemStart.bat
4 运行bat文件
可以看到,项目正常启动,并且不会出现乱码问题。
推荐教程:java快速入门