Request和Response中的乱码问题(请求和响应)
1.会出现乱码的位置
- 请求行,也就是请求的URL
原因:请求行的字符集是属于服务器的字符集,tomcat8以后都默认字符集UTF-8 - 请求头 ,会在cookie数据会出现乱码
原因: cookie的数据都是从服务器的响应携带出来的,并且响应是一个输出流,输出缓冲区有字符集。 - 请求体 ,只有Post请求方式才有请求体,在服务器获得请求体参数时会出现乱码
原因:字符集为 ISO8859-1 字符集 - 流 - 响应头 ,文件下载的时候,输出到响应头里面的文件名会出现乱码
原因:输出流 有自己的字符集 - 响应体 ,是输出流有自己的字符集 ,通过跟输出内容类型一起修改
原因:响应的本身就是字符输出流 -- 缓冲字符就有自己的缓冲字符集,所以会出现乱码
2.解决乱码
2.1请求行,也就是请求的URL
请求行:http://localhost:8080/day03_war_exploded/form.html?username=艾买尔
原因:请求行的字符集是属于服务器的字符集,tomcat8以后都默认字符集UTF-8
Post提交: ISO8859-1 字符集 - 流
Get提交: 跟tomcat字符集一致 UTF8
tomcat8之前, 默认字符集是 ISO8859-1
tomcat8开始, 默认字符集就是 UTF8
解决:
请求行的字符集跟服务器的字符集一致,所以 修改tomcat字符集, 在tomcat的web.xml修改端口的地方, 添加 URIEncoding="字符集"
2.2 请求头 ,会在cookie数据会出现乱码
原因: