Ваша проблема (почти наверняка) в том, что вы смешиваете, что такое символ и что такое байт. Это то, с чем вы можете справиться на английском (и в основном на немецком языке), но в таких шрифтах, как кириллица, японский и китайский, вы должны сделать это правильно. Первое, что нужно проверить, есть ли у вас символы вне диапазона \u0000
- \u00ff
в переменной xmlString
. Если это так, вы должны использовать экземпляр OutputStreamWriter
для отображения символов в байты. Если нет, преобразование уже применено, и вместо этого вам нужно записать байты, захваченные в этой строке, в файл, не обрабатывая их дальше (опять же, OutputStreamWriter
- самый простой способ получить это право, но с использованием ISO8859-1
кодирование на этом последнем этапе, поскольку это не перераспределяет байты вокруг).
Вывод преобразованного XML непосредственно из преобразователя проще, чем сначала захватить его. В конце концов, большинство XML читается только человеком в техническом смысле ...