页面展示乱码,以为是tomcat或者eclipse的问题,将tomcat和eclipse的默认编码格式都设置为了UTF-8,访问页面还是乱码,于是在代码中加入了一行代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
contentType属性用于定义HTTP响应头中的Content-Type,其中包含了MIME类型和字符集信息,这样浏览器知道如何解码接收到的内容。
pageEncoding属性则告诉JSP容器将JSP页面源码按照什么字符集进行编译。
在JSP页面中设置编码格式主要有以下几个步骤:
JSP页面自身编码
确保JSP源文件本身使用正确的字符编码保存。例如,如果你想使用UTF-8编码,应该在编辑器里设置文件的编码为UTF-8。
在JSP页面内声明编码
本文开头写的就是这些,
设置HTTP响应的编码
如果不使用JSP指令来设置,也可以在Servlet或JSP的Java代码中设置
response.setContentType("text/html; charset=UTF-8");
这行代码作用于服务器响应给客户端时,确保HTTP响应体的内容编码为UTF-8。
处理表单提交的请求编码
对于POST请求,为了避免接收中文或其他非ASCII字符参数出现乱码,还需要设置请求的字符编码:
request.setCharacterEncoding("UTF-8");
这样服务器能正确解析请求参数中的非ASCII字符。
总结一下,在JSP中确保整个工作流程无乱码的最佳实践是:
1,JSP文件保存为UTF-8编码;
2,使用<%@ page %>指令指定JSP页面的字符编码;
3,可选地,在Servlet或JSP的Java代码中设置响应的字符编码;
4,对于表单提交的请求,确保设置了正确的请求字符编码