UTF-8 an TidyHTML senden

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • UTF-8 an TidyHTML senden

    Ich möchte HTML in UTF-8 aus einem Bean (Java 1.3.1) heraus an TidyHTML senden um diese als ASCII mit Entities wiederzubekommen. Leider funktioniert das nicht. Kleine Umlaute werden kodiert, große Umlaute und ß werden in Entities mit Nummern größer 65000 zurückgegeben.

    Mein Code:

    Quellcode

    1. private String tidy(String input)
    2. throws Exception {
    3. // Optionen zusammenbauen
    4. this.options = "";
    5. // Kommando ausführen
    6. Runtime rt = Runtime.getRuntime();
    7. Process pr = rt.exec("/usr/bin/tidy" + this.options);
    8. // Daten an das Kommando schreiben
    9. OutputStream os = pr.getOutputStream();
    10. OutputStreamWriter osw = new OutputStreamWriter(os, "UTF8");
    11. BufferedWriter bw_output = new BufferedWriter(osw);
    12. bw_output.write(input);
    13. bw_output.flush();
    14. bw_output.close();
    15. this.errMsg = "";
    16. String errline = "";
    17. // Fehlermeldung von Tidy auslesen
    18. InputStream is_error = pr.getErrorStream();
    19. InputStreamReader isr_error = new InputStreamReader(is_error);
    20. BufferedReader br_error = new BufferedReader(isr_error);
    21. while ((errline = br_error.readLine()) != null)
    22. this.errMsg += errline;
    23. br_error.close();
    24. // Fehler, wenn gewünscht, als Exception werfen.
    25. if (this.errMsg.length()>0 && this.throwError)
    26. throw(new Exception(this.errMsg));
    27. String resline = "";
    28. String result = "";
    29. // Ergebnis vom Kommando auslesen
    30. InputStream is = pr.getInputStream();
    31. InputStreamReader isr = new InputStreamReader(is, ASCII);
    32. BufferedReader br_input = new BufferedReader(isr);
    33. while ((resline = br_input.readLine()) != null)
    34. result += resline;
    35. br_input.close();
    36. return result;
    37. }
    Alles anzeigen


    Wo ist da mein Fehler? Weiß jemand Rat?