Bug 49478

Summary: Add encoding parameter to AddDefaultCharSetFilter
Product: Tomcat 7 Reporter: Felix Schumacher <felix.schumacher>
Component: CatalinaAssignee: Tomcat Developers Mailing List <dev>
Status: RESOLVED FIXED    
Severity: enhancement    
Priority: P2    
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Attachments: add encoding parameter to AddDefaultCharsetFilter

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.