On Mon, Jul 27, 2009 at 3:34 PM, Ashish Kulkarni < ashish.kulkarn...@gmail.com> 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); } }