问题:
在web开发中,经常会遇到中文乱码问题,尤其是URL重定向或者页面转发的时候,出现乱码的原因也有很多,叫人烦不甚烦。下面对于请求转发和重定向出现乱码分别提供一种解决方案:
1.请求转发和重定向都可以试用:
jsp页面设置 : <%@ page language="java" contentType="text/html; charset=UTF-8 pageEncoding="UTF-8"%>
servlet设置: request.setCharacterEncoding("UTF-8"); (两者缺一不可)
2). 获取中文参数值: 默认参数在传输过程中使用的编码为 ISO-8859-1
①. 对于 POST 请求: 只要在获取请求信息之前(在调用 request.getParameter 或者是 request.getReader 等),
调用 request.setCharacterEncoding("UTF-8") 即可.
②. 对于 GET 请求: 前面的方式对于 GET 无效. 可以通过修改 Tomcat 的 server.xml 文件的方式.
参照 http://localhost:8989/docs/config/index.html 文档的 useBodyEncodingForURI 属性.
为 Connector 节点添加 useBodyEncodingForURI="true" 属性即可.
<Connector connectionTimeout="20000" port="8989" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>