cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robby Pelssers <Robby.Pelss...@nxp.com>
Subject RE: issue with form encoding C2.2
Date Wed, 06 Jun 2012 11:27:14 GMT
Hi Javier,

I read about default encoding for using GET, but I’m actually ‘posting’ the form.  I
really am convinced that the only real issue here is that the formencoding property ‘org.apache.cocoon.formencoding’
is being set with the value from the cocoon-core block.  I’m currently debugging the spring
configurator and I suspect this will confirm the issue.  Will get back on this today.

Robby

From: Javier Puerto [mailto:jpuerto@gmail.com]
Sent: Wednesday, June 06, 2012 1:23 PM
To: dev@cocoon.apache.org
Subject: Re: issue with form encoding C2.2

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<mailto: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<mailto:Robby.Pelssers@nxp.com>]
Sent: Wednesday, June 06, 2012 1:10 PM
To: dev@cocoon.apache.org<mailto:dev@cocoon.apache.org>; users@cocoon.apache.org<mailto: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?



Mime
View raw message