我在这个主题上经历了很多“谷歌”,但没有任何帮助.
事实上,我在每个我可以拥有(甚至不能)的地方设置了UTF-8编码,但是,从inputText检索的数据仍然被破坏了.
我使用JSF,Primefaces和Hibernate.
当我发布到页面时,它从数据库中正确呈现,在html doc中以纯文本形式写入,甚至作为bean回答.
<h:outputText value="text cez OT: čerstvejší"/><br/>
text cez IDE: čerstvejší<br/><br/>
<h:outputText value="text cez OT_beans: #{temp.dia}"/><br/>
text cez IDE_beans: #{temp.dia}<br/><br/>
<h:outputText value="text cez OT_DBS: #{temp.getDBS()}"/><br/>
text cez IDE_DBS: #{temp.getDBS()}<br/>
另外,当我将变量的setter设置为:
public String getName() {
return "načítané z aplikácie";
}
它呈现正确.
只有当我从页面上发布任何“ľščťžýáíí”字符时,它才会腐败到Ä?和共同的角色.
它运行在由NetBeans管理的Appache Tomcat 7.0.34上,CDI,JSF 2.2,Primefaces 3.5,Hibernate 3.2.5.
UTF-8编码设置位置:
> meta http-equiv =“Content-Type”content =“text / html; charset = utf-8”/>在每个标题中
>连接器端口=“8080”
协议= “HTTP / 1.1”
connectionTimeout = “20000”
redirectPort = “8443”
的URIEncoding = “UTF-8”/>和连接器端口=“8009”协议=“AJP / 1.3”redirectPort =“8443”URIEncoding =“UTF-8”/>在Appache服务器上
> f:view encoding =“UTF-8”contentType =“text / html”>
>我也有webFilter,没有帮助:
@覆盖
public void doFilter(ServletRequest请求,ServletResponse响应,FilterChain链)抛出IOException,ServletException {
request.setCharacterEncoding(编码);
response.setCharacterEncoding(编码);
chain.doFilter(request,response);
}
有帮助吗?其他问题?谢谢!`在这里输入代码
最佳答案 事实是,Tomcat 7上的使用CDI需要使用不同编码的org.jboss.weld.environment.servlet.Listener(我认为).解决方法是在焊接侦听器之前配置org.apache.catalina.filters.SetCharacterEncodingFilter和org.jboss.weld.servlet.ConversationFilter.
<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>