本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用
内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系。
本人互联网技术爱好者,互联网技术发烧友
微博:伊直都在0221
QQ:951226918
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
两个层面:JSP的输入,JSP的获取
1.在JSP页面上输入中文,请求页面后不出现乱码
1)保证JSP页面的编码格式是UTF-8
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
charset pageEncoding 一致 ,取值为UTF-8
2) 浏览器显示字符编码和请求的JSP页面的编码一致
2.在JSP 页面获取中文参数值:默认参数在传输过程中使用的编码为ISO-8859-1
1)对于post请求:在获取参数之前,调用 request.setCharacterEncoding("UTF-8");
1 <%
2 request.setCharacterEncoding("UTF-8");
3
4 %>
5 username:<%= request.getParameter("username") %>
2) 对于get请求:
① 先获取参数,之后解码,再编码
1 <%
2 String val = request.getParameter("username");
3 String username = new String(val.getBytes("iso-8859-1"),"UTF-8");
4 out.print(username);
5
6 %>
② 通用方法:设置tomcat的server.xml 添加 useBodyEncodingForURI="true"。这样就可以同post方法一样的方式解决中文乱码
1 <Connector port="8080" protocol="HTTP/1.1"
2 connectionTimeout="20000"
3 redirectPort="8443"
4 useBodyEncodingForURI="true"/>
参照:http://localhost:8080/docs/config/index.html 文档的 useBodyEncodingForURI 属性。为connector 添加此属性,设置为true
同样修改 eclipse中的tomcat的映射,添加同样的内容
参考: