[size=x-large]问题[/size]
我是使用intellij idea的,项目使用UTF-8编码,但发现一个奇怪的乱码问题,病征如下:
[list]
[*]执行public static void main(){}的程序时,打印的中文是正常的;
[*]执行单元测试用例(testng),打印出的中文却是乱码的;
[*]使用Maven的命令执行测试用例,中文显示出是正常的(注:Maven执行的中文乱码解决,参见:[url]http://budairenqin.iteye.com/blog/1336314[/url])
[/list]
[size=x-large]分析[/size]
1)由于执行main()是正常的,而执行测试用例却是错误的,说明compile是没有问题的,否则main()执行时就不会正常显示中文了,因此可以不去管compile的VM参数(注:如果是compile期出了问题,则需要为javac设置"-encoding UTF-8 "参数,在idea中,是通过ctrl+alt+s-compiler>java compiler->additional command line parameters设置);
2)main()执行正常,说明通过java运行代码的编码是正常的。通过Maven执行单元测试也是正常的,说明通过Maven显示给testng指定了编码,单元测试就正常了。现在直接通过idea调用testng执行测试用例就乱码了,所以问题应该出在idea没有正
我是使用intellij idea的,项目使用UTF-8编码,但发现一个奇怪的乱码问题,病征如下:
[list]
[*]执行public static void main(){}的程序时,打印的中文是正常的;
[*]执行单元测试用例(testng),打印出的中文却是乱码的;
[*]使用Maven的命令执行测试用例,中文显示出是正常的(注:Maven执行的中文乱码解决,参见:[url]http://budairenqin.iteye.com/blog/1336314[/url])
[/list]
[size=x-large]分析[/size]
1)由于执行main()是正常的,而执行测试用例却是错误的,说明compile是没有问题的,否则main()执行时就不会正常显示中文了,因此可以不去管compile的VM参数(注:如果是compile期出了问题,则需要为javac设置"-encoding UTF-8 "参数,在idea中,是通过ctrl+alt+s-compiler>java compiler->additional command line parameters设置);
2)main()执行正常,说明通过java运行代码的编码是正常的。通过Maven执行单元测试也是正常的,说明通过Maven显示给testng指定了编码,单元测试就正常了。现在直接通过idea调用testng执行测试用例就乱码了,所以问题应该出在idea没有正