Konvertieren Latin-1 Inhalt InputStream in UTF-8-String

Brauche ich zum konvertieren den Inhalt eines InputStream in einen String. Die Schwierigkeit ist hier die input-Codierung, nämlich von Latin-1. Ich habe versucht, verschiedene Ansätze und code-snippets mit String, getBytes, char[], etc. um die Codierung gerade, aber nichts schien zu funktionieren.

Schließlich kam ich mit der funktionierenden Lösung unten. Dieser code jedoch scheint etwas Ausführlicher zu mir, auch für Java. Also die Frage ist hier:

Ist es ein einfacher und eleganter Ansatz, um zu erreichen, was wird hier gemacht?

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;
}
InformationsquelleAutor cyroxx | 2012-08-07
Schreibe einen Kommentar