Пишу простой XML парсер. Все работает замечательно, пока дело не дошло до парсинга полей с кириллицей.
КОД:
@Override
public void composite(Node node, String s) {
if ("Ignores".equals(s)) {
NodeList nodeList = node.getChildNodes();
Settings settigns = Settings.getInstance();
List<String> ignores = new ArrayList<>();
for (int i = 0; i < nodeList.getLength(); i++) {
Node _node = nodeList.item(i);
if (_node.getNodeType() == Node.TEXT_NODE)
continue;
String ignore = _node.getTextContent();
ignores.add(ignore);
byte[] bytes = ignore.getBytes();
log.debug("Группа \"{}\" добавлена в список игнорируемых", ignore);
}
settigns.setIgnore(ignores);
}
}
XML документ
<Ignores>
<Ignore>Электромеханическая служба</Ignore>
<Ignore>Шахта ПГУ</Ignore>
<Ignore>Шахта ПВС</Ignore>
</Ignores>
Вывод:
22:11:39.776 DEBUG XmlCompositeByIgnores::composite::40 - Группа "����" добавлена в список игнорируемых
22:11:39.776 DEBUG XmlCompositeByIgnores::composite::40 - Группа "��� ����� � ����������" добавлена в список игнорируемых
22:11:39.776 DEBUG XmlCompositeByIgnores::composite::40 - Группа "������� �����" добавлена в список игнорируемых.
То есть, логгер логирует кириллицу, но при этом кириллицу из XML документа не понимает. Что делать в таком случае?