eclipse与命令行编译的编码有关问题

eclipse与命令行编译的编码问题

      最近在做关于字符串解析的事情,一开始一直在用eclipse进行开发,所以解析时的思路也依照于eclipse解析出来的文本字符串时行。但到了完成阶段后,把项目打成jar包,在命令行里运行时,问题出现了,在命令行里并没有解析出eclipse里解析的字符串,这样一来,由于有特殊字符解析的不一样,导致程序直接运行不了。

      先说明一下我的系统,是mac 10.7的机子,其它配置为默认。出现问题时,首先想到的应该就是程序运行中的编码问题,我检查了一下自己取字符的格式已经设置为了“GBK”(因为文本文件里的编码是GBK的)。输出到文件的编码也设置成了utf-8。最后就想到是不是eclipse运行时的编码也命令行的不一样了,我知道命令行用的是系统默认的编码,而eclipse做了什么处理,我是不太清楚的。于是google了一下,发现了问题。

       在运行时会有这样一个参数影响运行的结果:-Dfile.encoding=UTF-8。似乎eclipse里已经有了这个参数,所以在eclipse里运行时没有出现问题,而在命令行中,因为自己运行时没有这个参数,所以解析的字符串就不一样了。于是自己在命令行里加上参数(这里我需要的是-Dfile.encoding=GBK),然后程序运行就正常了,当然最后还是会造成生成文件的显示问题,如我用eclipse能够显示出正常的字符,而用命令行后,虽然解析出来的格式和内容似乎没有问题,但是在可以正常显示文字的地方,显示出来的却是问号,这个我还没有弄明白,接下来,再继续弄明白这个问题。