Re.
Du bekommst eine Antwort mit Content-Type:text/plain und da hängt keine Angabe zur verwendeten Kodierung dran. Der Browser rät sich nun eins und rät da wohl falsch.
Das hat mich auf die Lösung gebracht: "Wie sage ich dem Tomcat statische Dokumente mit der Kodierung UTF-8 auszuliefern?"
Die Antwort hat Google geliefert: Mit einem CharsetFilter12
Besten Dank fürs Helfen :)
*1 Die Filterklasse
package weblogic;
import javax.servlet.*;
import java.io.IOException;
/**
* http://stackoverflow.com/questions/138948/how-to-get-utf-8-working-in-java-webapps
*/
public class CharsetFilter implements Filter {
private String encoding;
public void init(FilterConfig config) throws ServletException {
encoding = config.getInitParameter("requestEncoding");
if (encoding == null) encoding = "UTF-8";
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain next)
throws IOException, ServletException {
// Respect the client-specified character encoding
// (see HTTP specification section 3.4.1)
if (null == request.getCharacterEncoding()) {
request.setCharacterEncoding(encoding);
}
// Set the default response content type and encoding
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
next.doFilter(request, response);
}
public void destroy() {
}
}
*2 web.xml: verweis auf Filterklasse + jsp-config
<!--CharsetFilter start-->
<filter>
<filter-name>CharsetFilter</filter-name>
<filter-class>weblogic.CharsetFilter</filter-class>
<init-param>
<param-name>requestEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharsetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>
*3 Mit dem CharsetFilter passt die Ausgabe :)