当我将maven java编译器插件从1.5更改为1.6时,为什么会得到一个不可映射的字符来编码UTF-8?

当我将maven java编译器插件从1.5更改为1.6时,为什么会得到一个不可映射的字符来编码UTF-8?,java,compiler-construction,encoding,maven,Java,Compiler Construction,Encoding,Maven,我有一个Java项目,我正在使用ApacheMaven。我一直在使用Maven Java编译器插件,在pom.xml文件中定义了参数source=1.5和target=1.5。由于我将其更改为source=1.6和target=1.6,因此出现以下错误: java:[54,27]用于编码UTF-8的不可映射字符 我一直在测试不同的配置,并将showWarnings设置为value true,这样我就可以看到,对于source和target,值为1.5时,这是一个警告,而不是一个错误 无论如何,我

我有一个Java项目,我正在使用ApacheMaven。我一直在使用Maven Java编译器插件,在pom.xml文件中定义了参数source=1.5和target=1.5。由于我将其更改为source=1.6和target=1.6,因此出现以下错误:

java:[54,27]用于编码UTF-8的不可映射字符

我一直在测试不同的配置,并将showWarnings设置为value true,这样我就可以看到,对于source和target,值为1.5时,这是一个警告,而不是一个错误

无论如何,我需要更改Java编译器配置。有人知道为什么会这样吗?我如何在不编辑所有Java源文件的情况下解决这个问题(现在有数百个文件存在这个问题)

我的问题是:为什么这是源=1.6和目标=1.6的错误 这是一个警告,源=1.5,目标=1.5

短anwser,因为:

-来源1.6这是默认值。没有发生语言变化 在JavaSE6中引入。但是,源文件中的编码错误是 现在报告为错误,而不是以前的警告

@DaveG关注点是有效的,您应该尝试:

  • 更改源文件的文件编码
  • 用IDE查找/替换这些字符

您是否查看了xxxxx.java文件第54行第27列中的内容以了解其中的内容?也可以使用支持十六进制的编辑器,或者可以显示隐藏字符的东西,比如记事本+。这是一个段落中特殊拉丁字符的编码问题(所有错误都在代码注释中)。如果我尝试使用encoding=ISO-8859-1,它编译为OK(无论如何,我无法更改整个项目的字符编码)。我的问题是:为什么这是源=1.6和目标=1.6的错误,而这是源=1.5和目标=1.5的警告?捕捉得好。Java在历史上对编码错误非常松懈。我一直试图让人们以一种将编码错误报告为错误的方式来使用它,但你必须努力。很好,这些都被抓到了,绝对的。这将节省数小时的繁琐调试和“我的Web应用程序显示奇怪的字符”等问题@布莱恩:我明白了。没有考虑过在文档中查找它为什么在评论中也会出现错误?这真的没那么好笑。