hibernate – JSF字符编码问题

我在这个主题上经历了很多“谷歌”,但没有任何帮助.

事实上,我在每个我可以拥有(甚至不能)的地方设置了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>
点赞