> And what is the java.net.URL base for?

base is for relative path calculations. InputStreamReader or StringReader simply provide no info to resolve relative paths.

Well, in your sample code it is not quite clear where connection variable comes from. If your source document can be addressed by URL, it is good idea to use one of render(URL) methods. In the case html.overrideDocumentEncoding(“iso-8859-1”) should work for you as expected.