Since Spring Boot 1.4.2 registering your own CharacterEncodingFilter will work ONLY IF you disable Spring's own instance of this bean by setting spring.http.encoding.enabled=false
in the application.properties.
However, one can resolve this matter without any Filter instantiation by adding these setting to the application.properties:
# Charset of HTTP requests and responses. Added to the "Content-Type" header if not set explicitly.
spring.http.encoding.charset=UTF-8
# Enable http encoding support.
spring.http.encoding.enabled=true
# Force the encoding to the configured charset on HTTP requests and responses.
spring.http.encoding.force=true
Source: Appendix A. Common application properties
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…