The problem was resolved by including both filters (org.jboss.weld.servlet.ConversationFilter and org.apache.catalina.filters.SetCharacterEncodingFilter).
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <filter> <filter-name>SetCharacterEncoding</filter-name> <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>ignore</param-name> <param-value>false</param-value> </init-param> </filter> <filter> <filter-name>Conversation</filter-name> <filter-class>org.jboss.weld.servlet.ConversationFilter</filter-class> </filter> <filter-mapping> <filter-name>SetCharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>Conversation</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class> </listener> <session-config> <session-timeout> 30 </session-timeout> </session-config> </web-app> On 27/08/2013, at 12:14 AM, Konstantin Kolinko <knst.koli...@gmail.com> wrote: > 2013/8/26 Alexander Hartner <a...@j2anywhere.com>: >> This may be more of an application problem than a tomcat issue, but I am >> rather stuck with this one and hoping that somebody on this list may be >> able to shed some light on my issue. >> >> I am trying to post UTF-8 encoding text to my JSF2.2 application, >> however the data received does not seem to be encoded correctly.I >> narrowed this problem down to the weld listener. To illustrate the issue >> I modified the test page from the tomcat faq: >> >> >> >> 1. <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> >> 2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> >> 3. <html> >> 4. <head> >> 5. <title>Character encoding test page</title> >> 6. </head> >> 7. <body> >> 8. <p> >> 9. Encoding : <%=request.getCharacterEncoding()%> >> 10. </p> >> 11. <p>Data posted to this form was: >> 12. <% >> 13. request.setCharacterEncoding("UTF-8"); >> 14. out.print(request.getParameter("mydata")); >> 15. %> >> 16. </p> >> 17. <form method="GET" action="index.jsp"> >> 18. <input type="text" name="mydata"> >> 19. <input type="submit" value="SubmitGET" /> >> 20. </form> >> 21. <form method="POST" action="index.jsp"> >> 22. <input type="text" name="mydata"> >> 23. <input type="submit" value="SubmitPOST" /> >> 24. </form> >> 25. .g. ç,g(,ö,s,,?, etc Soße " Test data " >> 26. </body> >> 27. </html> >> >> >> >> So I have a simple web application which only consist of this page, and >> the weld library in WEB-INF/lib (weld-servlet-2.0.3.Final.jar). >> >> So far so good. However as soon as I include the weld listener in my >> web.xml file >> >> >> >> 1. <?xml version="1.0" encoding="UTF-8"?> >> 2. >> 3. <web-app xmlns="http://java.sun.com/xml/ns/javaee" >> 4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> 5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee >> http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" >> 6. version="3.0"> >> 7. <listener> >> 8. >> <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class> >> 9. </listener> >> 10. <session-config> >> 11. <session-timeout> >> 12. 30 >> 13. </session-timeout> >> 14. </session-config> >> 15. </web-app> >> >> >> >> The post parameters are corrupted by the listener. >> >> >> >> I did enable URIEncoding="UTF-8" in the server.xml file, but this did >> not make any difference. >> >> 1. <Connector executor="tomcatThreadPool" >> 2. port="8080" protocol="HTTP/1.1" >> 3. connectionTimeout="20000" >> 4. redirectPort="8443" >> 5. URIEncoding="UTF-8"/> >> >> >> >> With the listener enabled data like "Soße" is received as "SoÃY"e", >> however once the listerner is removed everything works as expected. >> > > 1. I hope you have seen the FAQ. > http://wiki.apache.org/tomcat/FAQ/CharacterEncoding > > and > http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Set_Character_Encoding_Filter > > 2. Try to run with a debugger > http://wiki.apache.org/tomcat/FAQ/Developing#Debugging > > with a breakpoint in org.apache.catalina.connector.Request#parseParameters() > > I guess that there is some component that calls one of getParameter() > methods before your request.setCharacterEncoding("UTF-8") and thus the > default of ISO-8859-1 is effective. > > 3. What exact version of Tomcat 7.0.x are you using? > > Best regards, > Konstantin Kolinko > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org >