Bug 49478 - Add encoding parameter to AddDefaultCharSetFilter
Summary: Add encoding parameter to AddDefaultCharSetFilter
Alias: None
Product: Tomcat 7
Classification: Unclassified
Component: Catalina (show other bugs)
Version: unspecified
Hardware: All All
: P2 enhancement (vote)
Target Milestone: ---
Assignee: Tomcat Developers Mailing List
Depends on:
Reported: 2010-06-21 05:43 UTC by Felix Schumacher
Modified: 2010-07-10 17:15 UTC (History)
0 users

add encoding parameter to AddDefaultCharsetFilter (6.90 KB, patch)
2010-06-21 05:45 UTC, Felix Schumacher
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Felix Schumacher 2010-06-21 05:43:57 UTC
AddDefaultCharSetFilter adds a default charset to each request. It assumes ISO-8859-1 as the default charset.

The attached patch makes it configurable by introducing an "encoding" parameter. This parameter can take one of two special values "default" or "system". Every other value will be interpreted as a name of an character set, e.g "utf-8".

The meaning of the two special values are as follows:

 default: use ISO-8859-1. This value will also be used, if no parameter was specified, or if it is empty

 system: the jvm will be asked for the default charset. This charset will usually be set by system locale.

Together with this functional change, there are two minor changes and one bigger changes hidden. First use of annotation "Override" at overriden methods. Second use of keyword "static" for the ResponseWrapper, since it has no reference to outer class. The third and somewhat bigger change is use of HttpServletResponse#setCharacterEncoding(encoding) instead of manipulating the content-type.
Comment 1 Felix Schumacher 2010-06-21 05:45:21 UTC
Created attachment 25623 [details]
add encoding parameter to AddDefaultCharsetFilter
Comment 2 Mark Thomas 2010-07-10 17:15:03 UTC
Thanks for the patch. I applied a slightly modified version (handles a few edge cases, added a test case, i18n support, extended FilterBase) to 7.0.x and it will be included in 7.0.1 onwards.

Thanks again.