UTF-8-Antwort bei servlet

Ich bin das Lesen der HTTP-Antwort aus einem Perl-Seite in ein Servlet wie diese:

public String getHTML(String urlToRead) {
        URL url;
        HttpURLConnection conn;
        BufferedReader rd;
        String line;
        String result = "";
        try {
           url = new URL(urlToRead);
           conn = (HttpURLConnection) url.openConnection();
           conn.setRequestMethod("GET");
           conn.setRequestProperty("Accept-Charset", "UTF-8");
           conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");

           rd = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
           while ((line = rd.readLine()) != null) {
              byte [] b = line.getBytes();
              result += new String(b, "UTF-8");
           }
           rd.close();
        } catch (Exception e) {
           e.printStackTrace();
        }
        return result;
   }

Bin ich anzeigen dieses Ergebnis mit diesem code:

response.setContentType("text/plain; charset=UTF-8");

        PrintWriter out = new PrintWriter(new OutputStreamWriter(response.getOutputStream(), "UTF-8"), true);


        try {

            String query = request.getParameter("query");
            String type = request.getParameter("type");

            String res = getHTML(url);
            out.write(res);

        } finally {            
            out.close();
        }

Aber die Antwort noch nicht als UTF-8 kodiert. Was mache ich falsch?

Vielen Dank im Voraus.

  • In Ihrem PrintWriter, ist es möglich, dass "UTF8" nicht existiert, aber "UTF-8" zu tun?
  • Ich habe versucht es zu ändern, ohne Erfolg (bearbeitet)
  • Wie können Sie sagen, es ist nicht UTF-8?
  • Welchen Beweis haben Sie, dass urlToRead zurückkehrt, dessen Inhalt in UTF-8? Als das, was Sie sind, vorausgesetzt, es ist. Und warum sind Sie konvertieren line zu bytes, wenn Sie bereits eine String?
InformationsquelleAutor mihsathe | 2013-04-07
Schreibe einen Kommentar