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:[email protected]]
Sent: Wednesday, June 06, 2012 1:10 PM
To: [email protected]; [email protected]
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?