中文乱码问题

1). 在 JSP 页面上输入中文, 请求页面后不出现乱码: 保证 contentType="text/html; charset=UTF-8", 

pageEncoding="UTF-8" charset 和 pageEncoding 的编码一致, 且都支持中文. 通常建议取值为UTF-8
还需保证浏览器显示的字符编码也和请求的 JSP 页面的编码一致.

中文乱码问题

中文乱码问题

2). 获取中文参数值: 默认参数在传输过程中使用的编码为 ISO-8859-1

①. 对于 POST 请求: 只要在获取请求信息之前(在调用 request.getParameter 或者是 request.getReader 等),
调用 request.setCharacterEncoding("UTF-8") 即可.

下图在a.jsp:

中文乱码问题

下图在hello.jsp:

中文乱码问题

 打开浏览器发现乱码:

中文乱码问题

 在hello.jsp中加入:

 中文乱码问题

就可以了(这个方法必须在读取请求之前被调用,否则无效),然而这种方法对GET请求无效。

 中文乱码问题

中文乱码问题

②. 对于 GET 请求: 前面的方式对于 GET 无效.

在hello.jsp中

中文乱码问题

可以通过修改 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"/>

然后也要在eclipse里面的server.xml修改上面这行才能生效