我认为Maven的配置和资源文件的编码有问题。
我编写了一个使用大输入数据的测试。因此,我将资源文件放入src / test / resources。在使用Eclipse时,测试运行良好,但是在使用maven时,测试失败。从消息中可以很明显地看出,德语“ umlauts”(äüöß)的转换不正确。我在Eclipse中进行测试时遇到了同样的问题,但是能够通过将其从数据库导出到UTF-8来解决。但是现在我在Maven中遇到了这个问题。所以我认为它使用了错误的编码。
我尝试过
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
在属性中,我已经尝试过
<encoding>UTF-8</encoding>
在SureFire插件的配置中。
两者都不起作用!
当在代码中将InputStreamReader设置为使用“ UTF-8”时,我可以使其工作,但是想知道是否有一种方法可以配置它而不需要它吗?
答案 0 :(得分:0)
更新:在我撰写本文时和现在之间,这个问题发生了变化。您可能希望忽略它。
项目的源编码与InputStreamReader
的编码无关。
我的意思是为Maven定义UTF-8
意味着它将在构建期间以方式读取源文件和资源文件;但是,它不会影响您的源代码将文件读入自身的方式。
打个比方,可能是一些带有条形码的箱子在大洋彼岸运送。 Maven可以将盒子装到船上并将其推下码头,但是一旦您在大海上,软件就可以控制了!这意味着,如果您希望您的源代码针对其条形码打开包装盒,则您的软件还必须知道条形码。 Maven并不要求您的代码执行下游操作。
因此,使用明确的UTF-8
流阅读器完全应该执行的操作。更改Maven配置不会消除使用指定UTF-8
的流阅读器的必要。