#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>, но это мне не помогло