Как исправить ошибку с русской кодировкой в maven?

#java #maven #encoding #character-encoding

#java #maven #кодирование #кодировка символов

Вопрос:

Я использую шаблон с русскими символами (алфавит), и maven декодирует это с ошибкой

В исходном шаблоне выглядит так #[w] |#[А-я,ё,d,_] , но в ошибке это выглядит так:
#[w] |#[Р?-С?,С?,d,_]

Полный текст ошибки:

 java.util.regex.PatternSyntaxException: Illegal character range near index 12
#[w] |#[Р?-С?,С?,d,_] 
               ^
  

UPD

В свойствах проекта у меня это есть <project.build.sourceEncoding>windows-1251</project.build.sourceEncoding> , а в maven-compiler-plugin я добавляю <encoding>windows-1251</encoding> . Ничего не меняется

Комментарии:

1. Почему бы не использовать UTF-8?

2. @Slaw Я не знаю, как это работает и почему, но это работает. Напишите это как asnwer

3. Я бы написал это как ответ, если бы я сам точно знал, почему это имеет значение. Поскольку Windows-1251 , похоже, предназначена для таких языков, как русский, я предполагаю, что это связано с кодировкой файла. Большинство IDE, которые я использовал, автоматически сохраняют исходные файлы Java, используя UTF-8. Свойство плагина компилятора является значением -encoding опции для javac . Это приводит к тому, что вы сохраняете исходные файлы в UTF-8, но компилятор считывает их как windows-1251. Если эти два не совместимы один к одному в отношении используемых символов, будут ошибки перевода.

Ответ №1:

Похоже, Maven, возможно, использует неправильную кодировку символов для чтения ваших исходных файлов. Вы можете указать правильную кодировку, используя свойство project.build.sourceEncoding или с помощью параметра encoding плагина компилятора.

Комментарии:

1. Я уже сменил кодировку на <project.build.sourceEncoding> windows-1251</project.build.sourceEncoding>, но это мне не помогло