ByteBuffer bBuff = baos.getByteBuffer();
CharsetDecoder decoder = Charset.forName(encoding).newDecoder();
try {
CharBuffer cBuff = decoder.decode(bBuff);
writer.write(cBuff.array());
} catch (CharacterCodingException cce) {
throw new FacesException(cce);
} catch (IOException ioe) {
throw new FacesException(ioe);
}