本文主要以自己的例子叙述了在cmd中执行jar包时,遇到的编码问题,以及解决问题的过程。
问题:程序在eclipse中进行开发,涉及一些IO操作,且需要在不同的机子上跑,因此为了方便,将代码打包成了jar包。但是发现在eclipse中结果运行正确,在cmd中运行结果却错误。对问题进行调试,最后发现问题出在以下代码中:
if(splitLine[8].equals("空车"))
该判断中涉及到了中文字符,数据是从一个utf-8编码的文件中读取的,而我们在eclipse中一般都设置默认编码为utf-8编码,因此可以正确判断。但是cmd默认的却是以gbk编码来执行,因此这里的判断显然会出错。
尝试1:通过改变cmd默认编码方式来执行此jar包
可以通过http://jingyan.baidu.com/article/e75aca85440f01142edac636.html该方式来改变cmd默认编码。即在cmd命令窗口中输入:
chcp 65001
cmd将会进入u