办理方案

可以设置相应数据的格式

response.setContentType("text/html;charset=utf-8")

见告浏览器以什么样的格式对相应的数据进行解析

htmlutf8乱码JavaWeb开辟进程中的乱码问题 jQuery

指定了相应数据的格式类型

其值有两部分

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="指定编码"

属性名大小写敏感

表示指定当前做事器所利用的字符集

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>3.页面乱码

页面乱码分为两种情形

HTML页面乱码 :<meta charset="指定编码"/>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