Steve,

We have a similar requirement in that everything stored in the DB has to
UTF-8. Well, to address this we have written an UTF-8 Filter which
implements the Filter interface. All you need to do there is set the
character encoding to UTF8. The class looks like this...

public class UTF8Filter implements Filter {

    /**
     * default constructor 
     */
    public UTF8Filter() {
        super();
    }

    /* (non-Javadoc)
     * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
     */
    public void init(FilterConfig arg0) throws ServletException {
        // this doesn't need to do anything
        //
    }

    /* (non-Javadoc)
     * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse, javax.servlet.FilterChain)
     */
    public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain)
            throws IOException, ServletException {
        
        // set the encoding to UTF-8 on the request
        //
        req.setCharacterEncoding(IProcessor.UTF_8_ENCODING);
        
        // pass the filter along the chain
        //
        chain.doFilter(req, res);
    }

    /* (non-Javadoc)
     * @see javax.servlet.Filter#destroy()
     */
    public void destroy() {
        // this doesn't need to do anything
        //
    }
}

In your web.xml define this filter and make sure all your request go through
this filter. 

   <filter>
      <filter-name>UTF8Filter</filter-name>
 
<filter-class>uk.co.limehouse.publisher.struts.UTF8Filter</filter-class>
   </filter>

   <filter-mapping>
      <filter-name>UTF8Filter</filter-name>
      <url-pattern>*.do</url-pattern>
   </filter-mapping>
 

Hope this helps...

Arup

-----Original Message-----
From: Steve Bosman [mailto:[EMAIL PROTECTED] 
Sent: 12 May 2005 08:31
To: Tomcat Users List
Subject: Re: UTF-8 Problem with Tomcat 5.0.27 and POST

On 5/10/05, Bernhard v. Fromberg <[EMAIL PROTECTED]> wrote:
> Hi all,
> 
> I desperatly try to POST UTF-8 data to an application using struts.
> GET method works perfectly fine, but post does not.
> I am using CharacterEncodingFilter
> All pages have Content-Type header
> 
> java1.5.0 update 2
> Tomcat 5.0.27
> various Un*x systems.
> 
I think this might be a similar question to one I asked recently and the
following helped me

---------- Forwarded message ----------
From: Mark Thomas <[EMAIL PROTECTED]>
Date: Apr 6, 2005 4:14 PM
Subject: Re: URL encoding/decoding of UTF-8 characters
- Hide quoted text -
To: Tomcat Users List <tomcat-user@jakarta.apache.org>

It is a lack of agreed standard problem. You can force Tomcat to use
UTF-8 encoding by setting the URIEncoding parameter on the connector.
There are some other parameters that you can set as well. See
http://jakarta.apache.org/tomcat/tomcat-5.0-doc/config/http.html
---------- End Forwarded message ----------

Using link in this mail from the tomcat user maiIing list I have changed my
connector settings to:
   <Connector port="8080"
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
              enableLookups="false" redirectPort="8443" acceptCount="100"
              debug="0" connectionTimeout="20000"
              disableUploadTimeout="true" URIEncoding="UTF-8" />
   <Connector port="8443"
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
              enableLookups="false" disableUploadTimeout="true"
              acceptCount="100" debug="0" scheme="https" secure="true"
              clientAuth="false" sslProtocol="TLS" URIEncoding="UTF-8" />
That is I have added URIEncoding="UTF-8" and characters are now decoded
correctly.

Steve

---------------------------------------------------------------------
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