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.pelss...@nxp.com]
Sent: Wednesday, June 06, 2012 1:10 PM
To: d...@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?


Reply via email to