Hi Nikolaos,

My post was about Java EE in general and not about Stripes.

With Stripes, a custom LocalePicker implementation will correctly encode
POST parameters, but you still need to add the URIEncoding="UTF-8" attribute
to your connector configuration.

Cheers,

--
Samuel Santos
http://www.samaxes.com/


On Sun, Feb 6, 2011 at 3:11 AM, Nikolaos Giannopoulos <
[email protected]> wrote:

>  Janne and Samuel,
>
> Ok... I think there are some things that need to be clarified... b/c it was
> a while since I set this up in Stripes... I hadn't realized I even set it
> up.
>
> Technically speaking yes - you are both correct -
> request.setCharacterEncoding("UTF-8") is required and should be performed if
> you are doing UTF-8 with a simple Servlet.  However, as StripesFilter is
> already in place one would hope you wouldn't have to wrap yet another
> Servlet filter around it and clearly you don't.
>
> Basically, in addition to the other things I mentioned there indeed is one
> Stripes configuration that I set... by creating a custom LocalePicker
> subclass that picks the character encoding "UTF-8"... and dropping it the
> configured Stripes extensions folder... the relevant code is as follows:
>     public class MyLocalePicker implements LocalePicker {
>       ...
>       @Override
>       public final String pickCharacterEncoding(HttpServletRequest request,
> Locale locale) {
>         return ("UTF-8");
>       }
>     }
>
> And voila... all is well... and NO need for your additional Stripes
> wrapper... why b/c the StripesFilter performs the following:
> *                String encoding =
> this.configuration.getLocalePicker().pickCharacterEncoding(httpRequest,
> locale);*
> *                if (encoding != null) {*
> *                    httpRequest.setCharacterEncoding(encoding);*
>                     log.debug("LocalePicker selected character encoding: ",
> encoding);
>                 }
>                 else {
>                     log.debug("LocalePicker did not pick a character
> encoding, using default: ",
>                             httpRequest.getCharacterEncoding());
>                 }
>
> So, in fact we are golden via simple Stripes configuration vs. wrapping a
> custom filter around the Stripes filter.
>
> I had done this so long ago that I forgot I even did it.  And yes,
> technically the web browser should adhere to what its asked to use as the
> encoding and sure older web browsers may have issues - problem is what
> "older" means today is very unclear - so I agree this needs to be done but
> let Stripes do it for you.
>
> So the above should be added to my previous list :-)
>
> Cheers,
>
> --Nikolaos
>
>
>
> Samuel Santos wrote:
>
> Hi Daniil,
>
> I've an old post about this topic at
> http://www.samaxes.com/2006/12/java-and-utf-8-encoding/.
>
> Hope it helps,
>
> --
> Samuel Santos
> http://www.samaxes.com/
>
>
> On Sat, Feb 5, 2011 at 8:16 AM, Janne Jalkanen 
> <[email protected]>wrote:
>
>>   Really???  A filter just to set character encoding???  Although I
>> imagine it would work isn't that a little sledge hammer-ish ;-)
>>
>>
>>  I seem to recall it was the recommended practice.
>>
>>
>> Why not just put the following at the top of each of your JSPs (or tweak
>> as necessary):
>> <%@ page language="java" pageEncoding="UTF-8"
>> contentType="text/html;charset=UTF-8" %>
>>
>> That will ensure your web page supports UTF-8.
>>
>>
>>  No, it will just ensure that it outputs UTF-8; it does not say anything
>> about incoming request (which is what the request.setCharacterEncoding()
>> does.)
>>
>>  As far as Stripes is concerned you don't have to do anything for it to
>> support UTF-8... and Java retains all Strings in unicode so no issue there
>> either.
>>
>>
>>  The problem stems from the fact that servlet spec says that the default
>> input encoding is ISO-8859-1. Especially older browsers do not send the
>> character encoding correctly, so you're better off declaring the input
>> encoding explicitly.
>>
>>  Please see Servlet specification version 2.5 Section SRV.3.9.
>>
>>  /Janne
>>
>>
>>
>> ------------------------------------------------------------------------------
>> The modern datacenter depends on network connectivity to access resources
>> and provide services. The best practices for maximizing a physical
>> server's
>> connectivity to a physical network are well understood - see how these
>> rules translate into the virtual world?
>> http://p.sf.net/sfu/oracle-sfdevnlfb
>> _______________________________________________
>> Stripes-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/stripes-users
>>
>>
------------------------------------------------------------------------------
The modern datacenter depends on network connectivity to access resources
and provide services. The best practices for maximizing a physical server's
connectivity to a physical network are well understood - see how these
rules translate into the virtual world? 
http://p.sf.net/sfu/oracle-sfdevnlfb
_______________________________________________
Stripes-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-users

Reply via email to