问题描述:在windows中写了一个bat脚本启动jar包,结果控制台输出出现乱码。
bat内容如下
@title off
title 考勤程序后台
java -jar work-check-1.0.0.jar -Dspring.config.location=application.properties
脚本实现的是通过外部配置文件启动jar包,并命名jar包运行时的cmd窗口,使大量cmd窗口能一眼看出来是什么程序 。
解决方案:
1、乱码分两部分,第一部分是命令行的原因,批处理文件中的考勤程序后台几个字乱码了,这是命令行的编码格式不对
解决方案是用记事本打开批处理文件,另存,存的时候选择编码格式为ansi,另外使用chcp 65001或chcp 936都行,65001是utf8,936是gbk。
2、第一种乱码解决后,出现了第二种乱码,即jar包本身的乱码,由于第一步已经解决,所以很显然的能够发现,这种乱码其实是jar包输出的时候就输出的乱码,而不是cmd的显示有问题,回去查jar包发现其实是logback的配置中没有明确以utf8输出,这种情况下以默认的字符输出就说不定是什么了,最后修改配置文件解决了问题。