Здравствуйте, братья! Сегодня наткнулся на непонятную проблему. Я перевёл свой Java проект с maven'a на graddle. И всё хорошо, но почему-то XML файлы стали сохранятся в неправильной кодировке... При сохранении их в UTF-8 получается вот это:
<?xml version="1.0" encoding="utf-8"?>
<sky>
<mechanism name="33">
<abilities>
<ability name="�����������1" />
<ability name="22" />
</abilities>
</mechanism>
</sky>
А при сохранении в windows-1251 вот это:
<?xml version="1.0" encoding="windows-1251"?>
<sky>
<mechanism name="33">
<abilities>
<ability name="Проверка" />
<ability name="22" />
</abilities>
</mechanism>
</sky>
Эти файлы генерируются моей программой в автоматическом режиме с помощью этого метода:
public void save(String path) throws IOException
{
Document document = new Document();
document.setRootElement(getXMLElement());
XMLOutputter outputter = new XMLOutputter();
outputter.setFormat(Format.getPrettyFormat().setEncoding("windows-1251")); //utf-8 здесь работает неверно
outputter.output(document, new FileWriter(path));
}
Т.е. при сохранении в windows-1251 всё нормально, а при utf-8 - кракозябры. Такого раньше не было. Сначала я подумал что это криво работает библиотека для парсинга XML. Я использовал dom4j. Но затем я перешел на jdom2 и ситуация осталась прежней. Сохраненный программой файл ей же не открывается. Однако если вручную исправить xml-файл, то всё нормально. Я подозреваю что хотя кодировка выставлена в utf-8 программа всё-равно пишет в windows-1251. Видимо проблема где-то в настройках проекта, но где - я ума не приложу. Я использую Intellij IDEA. Помогите пожалуйста!