With the 2.3 servet API, there is a new method: request.setCharacterEncoding(String encoding)
This lets you tell the server a request's character encoding. It is critical that setCharacterEncoding is called BEFORE any request.getParameter is called (or getReader). Otherwise, you are at the mercy of the appserver for what you get back on the getParameter call. For example, if setCharacterEncoding is not called, you could get a null value back on getParameter("foo"). When you post directly to a jsp (MVC 1), the "entry point" for servicing the page is ultimately the page itself. So JspCompilers have request.setCharacterEncoding("whatever"); in the generated java code as one of the first things that get done. But with Struts, the entry point is not the JSP but rather the action. You eventually forward to the view but by that point, you've already processed the request. So my question is this: For struts actions and forms and anything else struts, is there 1 common place where we can override something to call request.setCharacterEncoding(). Is RequestProcessor.processPreprocess the place to do it? I grepped the struts 1.2.4 source code and only found a setCharacterEncoding on upload\MultipartRequestWrapper.java. That method is a no-op. Ideally, we only want to override 1 method that will handle the request's encoding for form validation and the action handlers, etc. If processPreprocess is NOT the place to do this, where/how should we do this? The ActionServlet instance perhaps that calls RequestProcessor.process()? The action handler knows what encoding to use so somehow, I would have to tell the request processor the "encoding" unless I can override something in the ActionServlet before process() gets called. I did *some* searching through the struts source code and in RequestProcessor, the call to processPopulate does a getParameter: if ((request.getParameter(Constants.CANCEL_PROPERTY) != null) || (request.getParameter(Constants.CANCEL_PROPERTY_X) != null)) { So calling setCharacterEncoding has to be done before processPopulate(). Thanks! Randy --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]