On Mon, Jul 27, 2009 at 3:34 PM, Ashish Kulkarni <
[email protected]> wrote:
> HiI have a jsp page which displays data in UTF-8 encoding, there is a input
> text field, when user enter japanese characters in this input text and data
> is transferred to Actionclass i get junk value,
>
> How do i handle japanese characters in ActionClass, do i have to do
> anything
> special in servlet or in JSP?
>
> I did try to put request.setCharacterEncoding("UTF-8"); in my Action class,
> but still does not work.
>
> JSP page displays proper japanese characters as it is uses UTF-8 for
> encoding,
>
> Is there a solution which will work for tomcat, weblogic and websphere
> application server? or is encoding handled seperately by different app
> servers
>
Setting character encoding in your action is too late, the parameters have
already been read from the request.
You need to set the character encoding in a filter that runs before the
struts2 filter.
There is a simple filter that will do it. You just need to add this filter
to your web.xml before the struts2 filter.
public class CharacterEncodingFilter implements Filter
{
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain next)
throws IOException, ServletException
{
String encoding = request.getCharacterEncoding();
if (encoding == null || encoding.length() == 0)
{
request.setCharacterEncoding("UTF-8");
}
next.doFilter(request, response);
}
}