mvn test 中文乱码

先上解决方案:

1.设置encoding:<argLine>-Dfile.encoding=UTF-8</argLine>,解决读取文件中的中文乱码问题

2.升级maven-surefire-plugin的版本至最新,解决日志输出中的中文乱码问题


问题现象:

mvn有两种情况下的乱码,第一种如下:

我的test,是从一个json文件中读取数据,然后通过test的case会将文件中的数据写入数据库,那么问题来了,我发现写入到数据库的中文乱码。

但是我用JUnit跑时,不会出现这种问题,所以这肯定是mvn test的问题,于是我做了如下配置:

<plugin>  
			    <groupId>org.apache.maven.plugins</groupId>  
			    <artifactId>maven-surefire-plugin</artifactId>  
			    <version>2.5</version>  
			    <configuration>
			    	<forkMode>once</forkMode>
		                <argLine>-Dfile.encoding=UTF-8</argLine><!-- 解决从json中读取测试数据时的中文乱码问题 -->
			    </configuration>  
			</plugin>
关键处在于: <argLine>-Dfile.encoding=UTF-8</argLine>。

好了,现在再用mvn test 测试,后去数据库查看数据中文是正常的。


这时我想输出下每个case的comments,是中文的,于是我用了logger.info(casejson.getString("comments")),问题又来了,控制台输出的测试报告中中文居然又乱码了,我尝试了下system.out.println("中文乱码否?"),它在测试报告中居然也是乱码!我想起我在配置surefire时是随便从网上拷下来的,拷时我还特意看了下发表时间,它是2012年,我并没有升级它的版本,我想先升级下,再找解决方案吧,于是我把它升级到了最新。

<plugin>  
			    <groupId>org.apache.maven.plugins</groupId>  
			    <artifactId>maven-surefire-plugin</artifactId>  
			    <version>2.19.1</version>  
			    <configuration>
			    	<forkMode>once</forkMode>
		                <argLine>-Dfile.encoding=UTF-8</argLine><!-- 解决从json中读取测试数据时的中文乱码问题 -->
			    	</configuration>  
			</plugin>

然后测试报告中文乱码也解决了。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值