globe: Problem mit Charset in simplen ProxyServlet

Beitrag lesen

n'abend,

in meinem kleinen billigen ProxyServlet habe ich ein Problem mit dem Charset. Prinzipiell sollte alles UTF-8 sein. Die Quelle ist definitiv UTF-8, aber das Servlet liefert mir (offenbar) Latin1. Ich verstehe schlicht nicht, wie das passieren kann.

ProxyServlet:
 * http://rodneyrehm.de/t/utf8problem/DataProxyServlet.java

Daten vor dem ProxyServlet:
 * http://rodneyrehm.de/t/utf8problem/source_header.txt
 * http://rodneyrehm.de/t/utf8problem/source_data.xml

Daten nach dem ProxyServlet:
 * http://rodneyrehm.de/t/utf8problem/result_header.txt
 * http://rodneyrehm.de/t/utf8problem/result_data.xml

Kann mir jemand erklären was hier nicht so läuft, wie es sollte?

package de.foobar.baz.client.servlets;  
  
import java.io.BufferedReader;  
import java.io.BufferedWriter;  
import java.io.IOException;  
import java.io.InputStream;  
import java.io.InputStreamReader;  
import java.io.OutputStreamWriter;  
import java.io.PrintWriter;  
import java.net.MalformedURLException;  
import java.net.URL;  
import java.net.URLConnection;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
import ch.foobar.baz.client.servlets.BasebazServlet;  
  
public class DataProxyServlet extends BasebazServlet  
{  
  
  
 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException  
 {  
  String demoproHost = this.mConf.get( "demopro.host" );  
  if( "".equals( demoproHost ) )  
  {  
   throw new IOException( "Could not read from source because configuration-property demopro.host is not set." );  
  }  
  
  BufferedWriter out = new BufferedWriter( new OutputStreamWriter( response.getOutputStream(), "UTF-8" ) );  
  
  try  
  {  
   String inputLine;  
   URL url = new URL("http://"+ demoproHost +"/data.php?" + request.getQueryString() );  
  
   URLConnection urlcon = url.openConnection();  
   urlcon.connect();  
   response.setContentType( urlcon.getContentType() );  
  
   BufferedReader in = new BufferedReader( new InputStreamReader( urlcon.getInputStream(), "UTF-8" ) );  
  
   while( (inputLine = in.readLine()) != null )  
   {  
    out.write( inputLine );  
   }  
   in.close();  
  }  
  catch( MalformedURLException me )  
  {  
   System.out.println(me);  
  }  
  
  out.flush();  
  out.close();  
 }  
  
}

weiterhin schönen abend...

--
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|