Кодировка Maven, Windows

348
16 марта 2017, 20:39

Как правильно настроить кодировку Maven проекта для работы с кириллицей? Какую кодировку использовать, CP866 или Windows-1251? Нужен пример POM файла с полностью настроенной кодировкой и пояснением какая кодировка должна быть в консоли и системе Windows, или ссылки на ресурсы. В консоли я знаю используется CP866, в системе Windows 1251, если я не ошибаюсь. Знаю кодировка проекта задаётся <project.build.sourceEncoding>windows-1251</project.build.sourceEncoding>, но ещё я видел что задают кодировку в maven-compiler-plugin, maven-resources-plugin и используют <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>, кто может объяснить в чём тут дело?

Мой проект в кодировке Windows 1251, но приведённая в примере функция требует явного указания кодировки CP866 для корректного извлечения, почему? Пробовал менять кодировку на CP866 при запуске jar файла в консоли, не помогает, весь проект корректно отображается, выполняет функции, почему то только при извлечении архива проблемы с кодировкой файлов на кириллице. При указании Windows-1251 в классе файлы извлекаются некорректно. Только CP866.

Использую net.lingala.zip4j.

public void Izvlecheniye(String AdresArkhiva, String AdresProgramm){
        try {
            ZipFile ZIPFayl = new ZipFile(AdresArkhiva);
            //ZIPFayl.setFileNameCharset("IBM866");
            ZIPFayl.extractAll(AdresProgramm);
            File Fayl = new File(AdresArkhiva);
            Fayl.delete();
            out.println("\n\n            Извлечено");
        }
        catch(ZipException Isklyucheniye) {
            out.println("\n\n            Ошибка");
            out.println("\n                " + Isklyucheniye.getMessage());
        }
    }
Answer 1

Не понял точно проблематику, поэтому пройдусь по нескольким моментам. Что-нибудь да поможет.

Если в проекте нет жестких требований к кодировке, то лучше везде работать с кодировкой utf-8. То есть ваша IDE - среда разработки (IDEA, Eclipse, NetBeans IDE и т.п.) создает файл pom.xml и другие java-файлы по умолчанию в кодировке utf-8. Проверьте, что все java-файлы проекта и файл проекта pom.xml находятся в utf-8 кодировке. В частности, в первой строке файла pom.xml должно быть: <?xml version="1.0" encoding="UTF-8"?>

Далее, начните с простого - в первой версии приложения работайте только с english-текстом, везде передавайте только его, во всех используемых файлах должна быть только кодировка utf-8. Сделайте так, чтобы всё заработало на english-тексте. Даже из java-исходников уберите тексты и комменты на русском. Я уверен, что всё заработает!

И когда все заработает - аккуратно добавляйте кириллицу (или что там нужно) и смотрите с какими ошибками падает сборка или работа приложения. Пишите об конкретных ошибках - будем разбираться на более частных случаях.

READ ALSO
Удаление из базы данных Sqlite

Удаление из базы данных Sqlite

Хочу удалить данные одной строки в БДПрограмма выдает следующую ошибку android

330
Как использовать Hibernate Session в desktop приложении?

Как использовать Hibernate Session в desktop приложении?

До этого у меня был опыт работы с ORM (Hibernate и Doctrine) в веб-приложенияхТам все просто, в 99

292
Удаленный доступ Android - PC

Удаленный доступ Android - PC

Хочу написать приложение под Android для удаленного управления PC (Допустим включить плеер, переключить песню, сделать громче-тише и тд

284
Работа с VK API для сообществ, не имея сервера

Работа с VK API для сообществ, не имея сервера

Чтобы получать информацию об обновлениях в сообществе, нужно иметь сервер: Однако, у меня есть приложение, которое работает с LongPoll-сервером...

283