I have doubts on it also... 
The only thing that I'm doing at the front end is to set the encode to
utf-8 I will double check it..

Regards...

  José Gustavo Zagato Rosa
System Analyst - Atos Origin
[EMAIL PROTECTED]


-----Original Message-----
From: Paul Barry [mailto:[EMAIL PROTECTED] 
Sent: terça-feira, 28 de outubro de 2003 12:26
To: Struts Users Mailing List
Subject: Re: Problem with UTF-8 characters in a mutlipart/form-data
encoded form

Does it work with multipart/form-data encoding?  It seems to me that
this problem is happening before the form is 
submitted to the servlet container (take a look at the value of "test"
in the HTTP request with Content-Type: 
multipart/form-data in my original post), so the servlet filter wouldn't
help, but I could be wrong.

José Gustavo Zagato wrote:

> Hi !
> 
>       I don't if it will fit into your needs but, to handler UTF-8 I
> build a serverlet filter with handles all encode / Decode operations.
As
> far as I know this approach is not a pure Struts solution but works
> really fine !
> I didn't test with a upload form like yours, but it’s a shot !
> 
> Regards
> 
>   José Gustavo Zagato Rosa
> System Analyst - Atos Origin
> [EMAIL PROTECTED]
> 
> 
> -----Original Message-----
> From: Paul Barry [mailto:[EMAIL PROTECTED] 
> Sent: terça-feira, 28 de outubro de 2003 12:07
> To: [EMAIL PROTECTED]
> Subject: Problem with UTF-8 characters in a mutlipart/form-data
encoded
> form
> 
> I am using Struts 1.1 in an application that needs to support the
UTF-8
> character set.  I am using Resin 2.1.10 with 
> character-encoding="UTF-8", and on most of my forms this seems to work
> just fine.  I am having problems with forms that 
> have to use the multipart/form-data enctype for handling uploading
> files.  If I print out the value of a text element in 
> an html:form where the enctype is not set at all (which ends up using
> application/x-www-form-urlencoded), using UTF-8 
> characters works fine.  This is what I get:
> 
> 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]
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to