1.响应乱码 响应回来的数据存在中文乱码问题 解决方案 可以设置响应数据的格式 response.setContentType("text/html;charset=utf-8")告诉浏览器以什么样的格式对响应的数据进行解析 指定了响应数据的格式类型 其值有两部分text/html:响应的数据是一个HTML文本 charset=utf-8:响应的数据的字符集是UTF-8的 2.请求乱码在获取请求的时候出现了乱码 不同的请求数据的解析方式不同 即乱码的处理方式也不同post请求 数据的传递是通过请求体进行传递的 数据的解析是由开发人员在后台进行解析的 解决方案在后台解析数据时指定解析编码 告诉服务器,以什么样的编码对请求中的数据进行解析request..setCharacterEncoding("指定编码")get请求 所有的解析是直接由服务器进行操作的,其默认字符集为:ISO-8859-1 其解决方案有两种 方式一:字符集的转换 将ISO-8859-1的字符串转换成指定编码的字符串 假设需要转换的变量为name name = new String(name.getBytes("ISO8859-1"),"UTF-8"); 此时转换成功,但是该方式需要对每一个字符串都进行转换 相对比较麻烦 方式二更改服务器默认字符集 将默认的ISO-8859-1改为我们想要的编码 打开tomcat安装目录下的conf目录中的server.xml文件 找到端口号配置的位置 在端口号配置的标签的属性部分新增一个属性 URIEncoding="指定编码" 属性名大小写敏感 表示指定当前服务器所使用的字符集3.页面乱码 页面乱码分为两种情况 HTML页面乱码 : JSP页面乱码:在JSP的page指令中指定响应格式 <%@ page contentType="text/html;charset=UTF-8" %>4.JDBC乱码在实现JDBC操作的时候,也存在乱码问题 需要指定当前操作的模式 ?useUnicode=true&characterEncoding=utf-8在某些引用中,需要指定对应的时区 例如:在SpringBoot中操作JDBC出现乱码时 需要指定时区?characterEncoding=utf-8&serverTimezone=UTC5.数据库乱码在创建数据库的时候,需要指定当前所使用的编码 在数据库执行的时候,字符集中不能带有- 例如:UTF-8必须简写为UTF8 engine=Innodb default charset=UTF8