Asher,
A few questions...
What do you put in the text box on the form and what output do you see?
Are you really using "<form act="/tests/utf.jsp" method=post>" or do you mean
<form action="/tests/utf.jsp" method=post>?
When I did my test I copied your UTF-8 character form the bugzilla report and
pasted into the text box. I was seeing question marks in the output until I
added the <[EMAIL PROTECTED] pageEncoding="UTF-8"%> The test was on XP (as per the bug
report) and I assume you used IE as the browser.
The URI encoding is a red herring in this case. Because you are using post it is
only the request encoding that matters.
The full text of my test JSP is below.
Mark
<%@ page language="java" import="java.lang.*,java.util.*" %>
<%@ page pageEncoding="UTF-8" %>
<html>
<body>
<form action="bug29900.jsp" method=post>
<input type=text name=source >
<input type=submit>
<form>
<p>
<%
request.setCharacterEncoding("UTF-8");
if(request.getParameter("source")!=null)
{
out.println(request.getParameter("source").length()+"<p>");
out.println(request.getParameter("source"));
StringBuffer sb = new StringBuffer();
for(int i=0; i<request.getParameter("source").length(); i++)
{
if(request.getParameter("source").charAt(i) == '&')
sb.append("&");
else
sb.append(request.getParameter("source").charAt(i));
}
out.println("<p>"+ sb.toString());
}
%>
</body>
</html>
> -----Original Message-----
> From: Asher Tarnopolski [mailto:[EMAIL PROTECTED]
> Sent: Sunday, July 04, 2004 6:25 PM
> To: [EMAIL PROTECTED]
> Subject: utf-8 with tomcat 5: second round
>
> hi folks,
> i've published a question about it a couple of days ago, but
> didn't get any responses.
> i've tried some things i found in bugzilla, but they didn't
> help. so, i wanna try to get your help once more.
> once more about my problem:
> i try to send utf-8 encoded parameters in POST body, but they
> arrived encoded in ISO...
> this worked perfectly with tomcat 4.0.x.
> from the info i've got from a developer at bugzilla i learned
> that the difference between tc4.0 and tc5
> that causes the change is actually in coyote http1.1
> connector. there is an attribute
> called useBodyEncodingForURI which was set to "true" in tc4,
> but became "false" in tc5.
> setting it to "true" together with <%@ page
> pageEncoding="UTF-8" %> and
> <%request.setCharacterEncoding("UTF-8");%> will make the difference.
> i made the change, the jsp tags are in the code and coyote
> settings look like this now:
>
> <code>
> <!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
> <Connector port="8080"
> maxThreads="150" minSpareThreads="25"
> maxSpareThreads="75"
> enableLookups="false" redirectPort="8443"
> acceptCount="100"
> debug="0" connectionTimeout="20000"
> useBodyEncodingForURI="true"
> disableUploadTimeout="true" />
> </code>
>
> but this doesn't help! another request to bugzilla didn't
> help either, i was told that this is not a bug in tomcat,
> so they are not going to deal with the question. well, may be
> it's not a tomcat bug, but it should be some kind of bug.
> any ideas?
>
> my testing code comes here:
>
> <code>
>
> <[EMAIL PROTECTED] contentType="text/html; charset=utf-8"%>
> <[EMAIL PROTECTED] pageEncoding="utf-8"%>
> <html>
> <head>
> </head>
> <body>
>
> <form act="/tests/utf.jsp" method=post>
> <input type=text name=source >
> <input type=submit>
> <form>
> <p>
>
> <%
> request.setCharacterEncoding("UTF-8");
>
> if(request.getParameter("source")!=null)
> {
> out.println(request.getParameter("source").length()+"<p>");
>
> out.println(request.getParameter("source"));
>
> StringBuffer sb = new StringBuffer();
> for(int i=0; i<request.getParameter("source").length(); i++)
> {
> if(request.getParameter("source").charAt(i) == '&')
> sb.append("&");
> else
> sb.append(request.getParameter("source").charAt(i));
>
> }
> out.println("<p>"+ sb.toString());
> }
> %>
>
> </body>
> </html>
>
>
> </code>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]