乱码问题:
浏览器的编码格式由当前打开的页面决定,如果页面中设置了编码格式那么浏览器就使用这个,如果没有,浏览器使用系统默认的编码
服务器编码格式和解码格式默认就是ISO-8859-1
浏览器的解码格式由当前打开的页面决定
浏览器(编码)-请求--->服务器(解码)
服务器(编码)-响应--->浏览器(解码)
统一编码和解码就可以解决乱码问题
1、get请求乱码 针对整个工作空间的所有项目,解决了所有的get请求乱码
浏览器是UTF-8,服务器也要使用UTF-8解码
解决:修改服务器的配置文件,告诉他读取请求参数时使用UTF-8解码
只解决了get请求乱码(告诉服务器在解析请求首行时使用UTF-8解析数据)
在servers项目中server.xml的第65行 给connector标签添加属性 URIEncoding="UTF-8"
2、post请求乱码 只针对当前的servlet,每个需要解决post请求乱码的servlet中都需要设置解码格式
解决:在使用request对象之前设置解码格式 request.setCharacterEncoding("UTF-8")
3、响应乱码
response直接使用ISO-8859-1编码然后交给浏览器
3.1 在使用response对象之前设置编码格式
(不用)response.setCharacterEncoding("UTF-8");只能让字符串不乱吗,浏览器还是不知道如何解析页面字符串
3.2 在使用response对象之前设置一个响应头,告诉浏览器如何解析页面,告诉response对象如何读取字符串
response.setHeader("Content-Type", "text/html;charset=Utf-8");
response.setContentType("text/html;charset=Utf-8");
01-04
175

07-21
2561

09-04
3780

“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交