Simple solution: declare the accept-charset value on all your forms to be "UTF-8" (and *only* UTF-8), then put up a simple Filter in front of your chain which says "request.setCharacterEncoding("UTF-8"). This should ensure that you get full unicodes to the ActionBean, and then you only have to deal with your DB encodings.
Works for me well. /Janne On 4 Feb 2011, at 22:45, Daniil Sosonkin wrote: > Hi there, > > So I'm sure there's someone out there who has met this problem and has found > a solution, therefore, let me ask the source. We are dealing with an > international web platform - many many languages. People submit forms in > different languages and it all stored in a mySQL database. Basically, I'm > having troubles getting UTF8 to work with said database. I have troubles at > all levels - stripes and database. > > Here's my set up: > - mySQL 5.1 > - mysql-jdbc 5.1 (driver) > - tables - utf8 > - LocalePicker is always forcing charset to UTF-8 in stripes > > Here's the problem: > - User enters some characters into the form (chinese, russian, hebrew....) > - ActionBean sticks it into the database and sends email. > - Fields are declared as Strings and nothing is done to the values > - When sticking to the database it will contain - ???? as values > - The output from the database obviously doesn't work > - When printing submitted value on page from ${actionBean.field} it > displays junk > > I know that browsers send all forms to the servers in ISO-8859-1 encoding. In > the good old days, or with plain servlets, I would always have to convert > submitted values to UTF-8 with the following: new > String(rs.getString(1).getBytes("ISO-8859-1"), "UTF-8"); From then on the > value is in UTF-8 > > In Stripes, I think that the values come to ActionBeans in ISO-8859-1 since > StringTypeConverter doesn't do anything. That's fine, I wrote my own > converter for UTF using the logic from above. This solves the problem with > printing submitted value on the page ${actionBean.field}; but if the value is > still displayed in the form it is all grumbled as if it was ISO-8859-1 > representation of UTF-8. That I don't understand. > > As for storing UTF8 into mySQL - well, if someone can help me out it would be > great since I can't get UTF8 string stored in the database without doing the > UTF8 to ISO-8859-1 and back conversion while keeping tables at latin1 I would > really appreciate it. The main question is Stripes. > > I hope this whole rambling makes sense and someone has had this problem > previously. Hopefully there was a solution. > > Sincerely, > Daniil > <daniil.vcf>------------------------------------------------------------------------------ > 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 > Stripes-users@lists.sourceforge.net > 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 Stripes-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/stripes-users