INFO - test.TestAction - The value is: �
Here is what the actual HTTP request that gets sent to the server looks like:
--- Start HTTP Request ----------------------------------------------------- POST /testForm.do HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */* Referer: http://pbdesktop/test.do Accept-Language: en-us Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Host: pbdesktop Content-Length: 11 Connection: Keep-Alive Cache-Control: no-cache Cookie: SERVER=op; locale=en_US; JSESSIONID=aoUCARQpqsLd
test=%C3%AD --- End HTTP Request ------------------------------------------------------
But if I modify my html:form to use enctype="multipart/form-data", I get this:
INFO - test.TestAction - The value is: A�
And the HTTP request looks like this:
--- Start HTTP Request ----------------------------------------------------- POST /testForm.do HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */* Referer: http://pbdesktop/test.do Accept-Language: en-us Content-Type: multipart/form-data; boundary=---------------------------7d319628600e4 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Host: pbdesktop Content-Length: 141 Connection: Keep-Alive Cache-Control: no-cache Cookie: SERVER=op; locale=en_US; JSESSIONID=aoUCARQpqsLd
-----------------------------7d319628600e4 Content-Disposition: form-data; name="test"
í -----------------------------7d319628600e4- --- End HTTP Request ------------------------------------------------------
It looks as if the character is already messed up before it even gets to the servlet container. There are messages in the mailing list archive that discuss this problem, but I didn't see a solution. What is the best way to handle UTF-8 characters in a multipart/form-data encoded form?
Here is the code that I am testing with:
/test/test.jsp: <%@ taglib uri="WEB-INF/taglib/struts-html.tld" prefix="html" %> <%@ taglib uri="WEB-INF/taglib/struts-bean.tld" prefix="bean" %>
<html:html>
<body>
<html:form action="testForm.do" enctype="multipart/form-data">
<html:text property="test" />
<html:submit />
</html:form>
</body>
</html:html>Relavent parts of struts-config.xml: <struts-config>
<form-beans>
<form-bean name="testForm" type="test.TestActionForm" />
</form-beans> <action-mappings>
<action path="/test" type="org.apache.struts.actions.ForwardAction"
parameter="/test/test.jsp" />
<action path="/testForm" type="test.TestAction" name="testForm" input="/test.do"
scope="request" />
</action-mappings><controller contentType="text/html;charset=UTF-8" />
<struts-config/>
test.TestAction: package test;
import javax.servlet.http.*; import org.apache.commons.logging.*; import org.apache.struts.action.*;
public class TestAction extends Action {
private static final Log log = LogFactory.getLog(TestAction.class);
public ActionForward execute(
ActionMapping mapping,
ActionForm pform,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
TestActionForm form = (TestActionForm)pform;
log.info("The value is: "+form.getTest());
return null;
}
}test.TestActionForm: package test;
import org.apache.struts.action.ActionForm;
public class TestActionForm extends ActionForm {
private String test;
public String getTest() { return test; }
public void setTest(String string) { test = string; }
}
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

