tomcat默认提交的编码是ISO8859-1,所以中文是乱码
解决办法:
1. 如果是get方式 可以在server.xml的8080端口 节点中增加编码
打开你运行项目的tomcat 文件目录,找到 tomcat目录下的\apache-tomcat\conf\server.xml 文件,找到你的端口所在所在的xml配置
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" (新添加)URIEncoding="UTF-8" />
在其后面添加上 URIEncoding="UTF-8",重启tomcat,再次运行。
2. 如果是post方式,可以增加filter,把编码改成所需要的 (下面是spring的配置, 该配置只对post的内容起作用)
<filter>
<filter-name>Spring character encoding filter</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>
</filter>
<filter-mapping>
<filter-name>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
其他参考:
首先 建议你用UTF-8编码格式
第一、<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
这个是设置html中的编码
第二、request.setCharacterEncoding("utf-8") 这是设置request接受参数的编码
第三、new String(key.getBytes("ISO-8859-1"),"utf-8");
这个是设置某一个字符串的编码的