Hi Robby,

Maybe it's helps, by default Tomcat uses ISO-8859-1 for URL encoding so GET parameters will be affected. http://wiki.apache.org/tomcat/FAQ/CharacterEncoding#Q1
We had similar issues before and was fixed configuring the Tomcat connector as UTF-8.

Salu2

2012/6/6 Robby Pelssers <Robby.Pelssers@nxp.com>

I did found a workaround by the way…

 

If you add an extra request parameter called cocoon-form-encoding and set it to utf-8 it will work

 

Snippet from RequestProcessor.java:

 

    protected Environment getEnvironment(String uri,

                                         HttpServletRequest req,

                                         HttpServletResponse res)

    throws Exception {

 

        String formEncoding = req.getParameter("cocoon-form-encoding");

        if (formEncoding == null) {

            formEncoding = this.settings.getFormEncoding();

        }

 

        HttpEnvironment env;

        env = new HttpEnvironment(uri,

                                  req,

                                  res,

                                  this.servletContext,

                                  this.environmentContext,

                                  this.containerEncoding,

                                  formEncoding);

        return env;

    }

 

From: Robby Pelssers [mailto:Robby.Pelssers@nxp.com]
Sent: Wednesday, June 06, 2012 1:10 PM
To: dev@cocoon.apache.org; users@cocoon.apache.org
Subject: issue with form encoding C2.2

 

Hi all,

 

Just wanted to have a short discussion on an issue that I wasted quite some hours on.  Let me first explain that I configured my cocoon block with following two properties as per http://cocoon.apache.org/2.2/1366_1_1.html :

 

org.apache.cocoon.containerencoding=UTF-8

org.apache.cocoon.formencoding=UTF-8

 

 

Recently I created a form showing pre-populated data from an xquery.  One form field contained the Ohm Ω character and the browser rendered if fine.  But I had to post the data back to the server and the Ohm sign got corrupted.

 

From firebug I could see following:

descriptiveTitle N-channel 25 V 2.85 mΩ logic level MOSFET in LFPAK using NextPower technology

magCode             R73

specificationStatus          Product

 

From flowscript:

descriptiveTitle=N-channel 25 V 2.85 mΩ logic level MOSFET in LFPAK using NextPower technology

specificationStatus=Product

magCode=R73

 

 

 

So next I started looking at cocoon sources using URLDecoder and I had a suspicion that NetUtils might be responsible for the issue. But that didn’t seem to be the issue.  I managed to find out that the value I defined for formencoding is not actually used.  The reason is that it also is set in cocoon-core and either it doesn’t get overwritten or the property from cocoon-core is overwriting my own property value.

 

nxp10009@NXL01262 /c/development/workspaces/cocoon22/trunk/core

$ find . -name *.properties | xargs grep "formencoding"

./cocoon-core/src/main/resources/META-INF/cocoon/properties/core.properties:org.apache.cocoon.formencoding=ISO-8859-1

 

So what’s the best way to fix this?