您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在JSF2.0,Hibernate,MySQL中启用UTF-8字符集

在JSF2.0,Hibernate,MySQL中启用UTF-8字符集

经过一些解决后,我能够处理该问题-以下是对我有用的代码,以启用与UTF8一起使用的JDBC

<bean id="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="driverClass" value="com.MysqL.jdbc.Driver" />   
        <property name="jdbcUrl" value="jdbc:MysqL://localhost:3306/dbname?useUnicode=true&amp;characterEncoding=UTF-8" />  
        <property name="maxPoolSize" value="10" />
        <property name="maxStatements" value="0" />
        <property name="minPoolSize" value="5" />
    </bean>

配合使用useUnicode=true&amp;characterEncoding=UTF-8达到&amp;目的

为了能够与Hibernate一起使用,还应在hibernate属性中指定以下内容

<property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MysqLDialect</prop>
                <prop key="hibernate.show_sql">false</prop>
                <prop key="hibernate.connection.useUnicode">true</prop>
                <prop key="hibernate.connection.characterEncoding">UTF-8</prop>
                <prop key="hibernate.connection.charSet">UTF-8</prop>               
            </props>
        </property>

还要在过滤器中指定请求编码格式

public class ApplicationFilter implements Filter {    
        public void destroy() {
        }

    public void doFilter(ServletRequest request, ServletResponse response,
                FilterChain chain) throws IOException, ServletException {
            request.setCharacterEncoding("utf-8");
        }

        public void init(FilterConfig fConfig) throws ServletException {
        }
    }

现在,即使您的应用程序和数据库不支持特殊字符,也请检查数据库字符集,尝试重新创建数据库并使用字符集UTF8代替latin1

MySQL 2022/1/1 18:15:15 有456人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶