Ответ 1
Если это UTF-8, а не UTF-16, спецификация не имеет никакой цели. Почему он туда попал? Кроме того, здесь жалуется только Java, а не Maven.
Отъезд JDK-4508058: кодировка UTF-8 не распознает начальную спецификацию, который связан.
Я пытаюсь скомпилировать проект Maven Java с файлами, сохраненными как UTF-8, которые имеют спецификация, но я я получаю ошибку незаконного символа из символа спецификации, несмотря на то, что у меня есть как project.build.sourceEncoding
, так и encoding
для параметра maven-compiler-plugin
, установленного на UTF-8
.
Мне не хватает дополнительной настройки? Могу ли я даже это компилировать, не удаляя спецификацию (не разрешено вносить какие-либо изменения в исходный код, но я могу изменить POM)?
Ошибка:
java: C:\code\main\src\test\java\net\initech\finance\FinanceTest.java: 1: незаконный символ:\65279
Свойство:
<properties>
...
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
...
</properties>
Плагин:
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
Если это UTF-8, а не UTF-16, спецификация не имеет никакой цели. Почему он туда попал? Кроме того, здесь жалуется только Java, а не Maven.
Отъезд JDK-4508058: кодировка UTF-8 не распознает начальную спецификацию, который связан.
1. Закройте свой проект.
2. Попробуйте открыть файл с помощью блокнота ++ и переключитесь на "UTF-8 без спецификации".
3.Рекомендуйте свой проект еще раз.
Это случилось со мной после того, как я открыл класс Java, используя блокнот. Это изменило кодировку файла.
Простой трюк, который я сделал, это:
==, взгляните на разницу знаков равенства. Правильный используется для обычного английского типа, но левый более длинный обычно используется для китайских языков.