日期:2014-05-17  浏览次数:20666 次

jsp+sql2005 插入数据库时中文乱码,使用了过滤器,用utf-8编码
如果过滤器使用的是gb2312编码则没问题,读取正常。为了配合前台html页必须使用utf-8.
直接在数据库里添加中文时正常显示,jsp正常读取。
通过jsp页插入中文数据则在数据库里是乱码,读出也是乱码
数据库 乱码 jsp utf-8

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

在tomcat中也将编码设置成utf-8。

tomcat6 con文件夹下的xml文件最前边的都改成utf-8了,没效果

  <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

改成
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" />

改了,然后重启tomcat,重新部署,还是不行。过滤器是不是和数据库对不起来,如果jsp+servle t request,response都设置成gb2312可以,但是那样需要修改太多页面,一个项目两种编码也不合适

Struts.xml:<constant name="struts.i18n.encoding" value="UTF-8" /> 
web.xml:
<filter>
  <filter-name>encodingFilter</filter-name> 
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
- <init-param>
  <param-name>encoding</param-name> 
  <param-value>UTF-8</param-value> 
  </init-param>
<init-param>
  <param-name>forceEncoding</param-name> 
  <param-value>true</param-value> 
  </init-param>
  </filter>
<filter-mapping>
  <filter-name>encodingFilter</filter-name> 
  <url-pattern>/*</url-pattern> 
  </filter-mapping>
jsp:<%@ page language="java" contentType="text/html; 
        charset=UTF-8" pageEncoding="UTF-8"%>
tomcat:<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" />
其他地方可以设的都设成同一编码