Is there an easy way to avoid dealing with text encoding problems?
Also note that, if you're starting off with a String, you can skip creating a StringReader and create an InputStream in one step using org.apache.commons.io.IOUtils from Commons IO like so:
InputStream myInputStream = IOUtils.toInputStream(reportContents, "UTF-8");
Of course you still need to think about the text encoding, but at least the conversion is happening in one step.