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 <[email protected]>
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]