Проблема скорее всего в том, как вы называете трансформатор. Я думаю, это будет работать нормально, если вы позвоните с помощью java -jar saxon.jar ...
Как правило, когда вы используете инструменты XML, которые принимают InputStream / OutputStream, то эти инструменты будут проверять правильность кодировки.
Когда вы используете смесь потоков и записывающих устройств, вы должны будете убедиться, что кодировка при переходе от одного к другому соответствует тому, что вы сказали процессору XSLT производить. Всегда устанавливайте кодировки явно. Могут быть значения по умолчанию, но когда дело доходит до кодирования, они чаще ошибаются.