Hi, I am running webapp for some time with no problems. After some "change" that I am not able to identify my POST (GET works fine) requests are messed up. Just on my local server.
Some facts: Tomcat 5.0.28, jdk 1.4.2.07 winXP, (others in,xp win server,linux) Following simple code produces different result on my server and the others (web.xml,server.xml,jdk configuration is the same) Form page: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Encoding test</title> <script type="text/javascript"> function test(method){ var frm = document.getElementById("form"); frm.method = method; frm.submit(); } </script> </head> <body> <form method='POST' action='post_process.jsp' id='form'> <input type='text' name='param'> </form> <button onclick='test("get")'>get</button> <button onclick='test("post");'>post</button> </body> </html> post_procces.jsp <%@ page language="java" session="true" contentType="text/html; charset=UTF-8"%> <% request.setCharacterEncoding("UTF-8"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Encoding test process</title> </head> <body> <% String param = request.getParameter("param"); String decoded = new String(param.getBytes("iso-8859-1"),"UTF-8"); System.out.println("Original value --> "+param); System.out.println("Decoded value --> "+decoded); %> V2<br> Method: <%= request.getMethod() %><br> Encoding: <%= request.getCharacterEncoding() %><br> Locale: <%= request.getLocale() %><br> Default System charset: <%= new java.io.OutputStreamWriter(new java.io.ByteArrayOutputStream()).getEncoding() %><br> Original value: '<span style='color:<%= request.getMethod().equals("GET") ? "red" : "green" %>'><%= param %></span>'<br> Decoded value: '<span style='color:<%= request.getMethod().equals("GET") ? "green" : "red" %>'><%= decoded %></span>'<br> </table> </body> </html> My output: Method: POST Encoding: UTF-8 Locale: cs Default System charset: Cp1250 Original value: 'Äížek' Decoded value: 'čížek' Correct output (any other server): V2 Method: POST Encoding: UTF-8 Locale: cs Default System charset: Cp1250 Original value: 'čížek' Decoded value: '?�?ek' I spent last two days googling and looking for answer with no luck. Hope that someone can help. Thanks in advance Jan Pfeifer