Parameters encoding wrong
-------------------------

                 Key: SLING-1845
                 URL: https://issues.apache.org/jira/browse/SLING-1845
             Project: Sling
          Issue Type: Bug
          Components: Engine
    Affects Versions: Commons Mime 2.1.2
         Environment: Mac OS
            Reporter: Pierre-Luc Rigaux


Hello here my problem,

I try to post some parameters in different languages and the output is wrong.

Here my exemple.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
<html>
        <head>
                <meta http-equiv="Content-Type" content="text/html; 
charset=UTF-8">
                <title>Test Parameters</title>
        </head>
        <body>
        Test Parm
                <form action="/test/encoding" method="POST" 
enctype="application/x-www-form-urlencoded">
                
                        <input type="hidden" name="property/en" value="School"> 
                        <input type="hidden" name="property/fr" value="École"> 
                        <input type="hidden" name="property/zh" value="学校">
                        
                        <input type="hidden" name="school" value="School"> 
                        <input type="hidden" name="école" value="École"> 
                        <input type="hidden" name="学校" value="学校">
                        
                
                        <button type="submit">Submit</button>
                </form>
        </body>
</html>

Here the HTTP headers

Response Headers
Content-Type    text/html; charset=utf-8
Server  Jetty(6.1.x)
Transfer-Encoding       chunked
Proxy-Connection        Keep-alive

Request Headers
Host    localhost:8888
User-Agent      Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; 
rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive      115
Proxy-Connection        keep-alive
Referer http://localhost:8888/client/testParameters.html
Cookie  
sling.formauth=MTQyMTUxODdiYTI5YTI5ZTYzN2IwNmU4M2ZiYjQ2YThiMjZmOWIzYkA0MTI4NzE2MzQ5Nzg0NkBhZG1pbg

Here the POST

Parameters application/x-www-form-urlencoded
property/en     School
property/fr     École
property/zh     学校
school  School
école   École
学校      学校

Content-Type: application/x-www-form-urlencoded 
Content-Length: 152 
property%2Fen=School&property%2Ffr=%C3%89cole&property%2Fzh=%E5%AD%A6%E6%A0%A1&school=School&%C3%A9cole=%C3%89cole&%E5%AD%A6%E6%A0%A1=%E5%AD%A6%E6%A0%A1
 
Here my analysis

The problem is due to the method 
org.apache.sling.engine.impl.parameters.ParameterSupport.getRequestParameterMapInternal()
 that call the  Util.fixEncoding(parameters);

Before calling that method all the values are OK but after they are encoded in 
ISO-8859-1. To fix the problem I send an other parameter _charset_=utf-8. But I 
think that is the wrong way to do it.







-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to