最近需要做一个新项目,重新拿了一个公司的原始框架,因为使用了有一段时间了,搭建起来很快就可以运行了.不过这个时候出现了一个小问题,jsp前台数据传递到后台以后出现乱码现象,查找了很久,该修改的地方都修改了,过滤器也有,百思不得其解最后通过查看资料找到了问题的所在.现在记录一下
一般情况下需要设置编码的地方:
1)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>
2)jsp页面设置简码格式(自我认为的)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=GBK"%>
在这个地方有个问题不是很了解,contentType="text/html; charset=GBK"当我设置GBK的时候可以使用,UTF-8的时候jsp页面本身的中文会出现乱码,从数据库中获取的中文不会(更不得其解的是,有的项目是UTF-8是好的,GBK是乱码的)
3)server.xml文件
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
本次的问题便是出现在这里.tomcat看资料说TOMCAT默认的会进行iso8859-1的编码处理,这个时候如果我们的提交方式是GET的话便会出现乱码问题.但是如果我们提交方式是
POST的话便没有这个问题了.如果大家的1,2都做了,那么3出现问题的可能性是很大的.
详细资料:http://liugang-ok.iteye.com/blog/1286262/