https://issues.apache.org/bugzilla/show_bug.cgi?id=50504
Summary: Allow setting query string character set trough
request attribute
Product: Tomcat 7
Version: 7.0.5
Platform: All
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P2
Component: Catalina
AssignedTo: [email protected]
ReportedBy: [email protected]
Currently tomcat is using ISO-8859-1 by default to decode query parameters.
This can be modified with connector attributes like URIEncoding and
useBodyEncodingForURI, however these are server wide settings and affect every
web application served trough that connector.
I suggest an alternative, optional way: to define query encoding with a special
request attribute. It has the benefit that it allows to use different query
parameter encoding per web application (per request). So a new application can
use UTF-8 without effecting old ones.
Jetty has a similar approach: it is using
"org.eclipse.jetty.server.Request.queryEncoding" for that (however in Jetty
UTF-8 is the default encoding for query parameters).
This is also similar to how content type charset is set for UTF-8 POST-s (using
request.setCharacterEncoding()).
Without this in mixed environments (where already existing applications are
served with the default settings of tomcat) new, UTF-8 based applications can
not use query parameters because browsers are using the served html page's
character set to encode query parameters (the same they are doing with POST
bodies).
I am attaching a patch containing the suggested changes with a new junit test.
I named the special request attribute
"org.apache.tomcat.request.query_encoding".
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]