经过一些解决后,我能够处理该问题-以下是对我有用的代码,以启用与UTF8一起使用的JDBC
<bean id="DataSource" destroy-method="close"> <property name="driverClass" value="com.mysql.jdbc.Driver" /><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/dbname?useUnipre=true&characterEncoding=UTF-8" /> <property name="maxPoolSize" value="10" /> <property name="maxStatements" value="0" /> <property name="minPoolSize" value="5" /> </bean>
配合使用
useUnipre=true&characterEncoding=UTF-8达到
&目的
为了能够与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.useUnipre">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



