title: Convert Latin-1 content of InputStream into UTF-8 String
body: <p>I need to convert the content of an InputStream into a String. The difficulty here is the input encoding, namely Latin-1. I tried several approaches and code snippets with String, getBytes, char[], etc. in order to get the encoding straight, but nothing seemed to work.</p>
  
  <p>Finally, I came up with the working solution below. However, this code seems a little verbose to me, even for Java. So the question here is:</p>
  
  <p><em>Is there a simpler and more elegant approach to achieve what is done here?</em></p>
  
  <pre><code>private String convertStreamToStringLatin1(java.io.InputStream is)
          throws IOException {
  
      String text = "";
  
      // setup readers with Latin-1 (ISO 8859-1) encoding
      BufferedReader i = new BufferedReader(new InputStreamReader(is, "8859_1"));
  
      int numBytes;
      CharBuffer buf = CharBuffer.allocate(512);
      while ((numBytes = i.read(buf)) != -1) {
          text += String.copyValueOf(buf.array(), 0, numBytes);
          buf.clear();
      }
  
      return text;
  }
  </code></pre>