web前端出现的中文乱码的处理方式
中文乱码问题的处理
1、在Java代码中指定编码格式
首先在Java代码中分别加上请求和响应时的编码格式,我这里指定的字符集是“UTF-8”。
//指定request请求时的字符编码格式
req.setCharacterEncoding("UTF-8");
//设置response响应的字符编码格式
resp.setCharacterEncoding("UTF-8");
//设置响应内容类型为 text/html(文本/超文本标记语言);文本编码为UTF-8
resp.setContentType("text/html'charset=UTF-8");
也可以用拦截器改成统一字符编码用web.xml或者编写Filter类,这里我就不介绍了。
2、前端页面中出现的中文乱码
如果前端页面是 JSP 页面,这时需要指定编码格式与Java代码中的编码格式保持一致。找到顶部的<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>设置编码格式。
jsp页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
如果是 HTML 页面,需要检查下里面的编码格式是否与Java代码中指定的编码格式一致(一般默认是utf-8)。
<meta charset="UTF-8">
3、往数据库中存数据时出现的中文乱码
如果从页面上往数据库中存数据时出现了中文乱码,并且前两步都检查过了没啥问题,这时需要检查下数据库的编码格式与Java中的编码格式是否一致。
首先输入命令查看数据库的字符编码,然后修改字符编码(数据库中的字符编码是‘utf8’格式,不是‘utf-8’,中间没有‘-’,这个一定要注意)
//在数据库中数据该代码,查看数据库的编码格式
show variables like ‘character_set_database’;
//修改数据库的字符编码位utf8格式
alter database hcwx character set utf8;
4、在url的后端设置字符编码
当然,有时候也会在连接数据库的时候 在url的后面加上一些代码,防止出现中文乱码的现象。
在连接数据库时,在数据库名的后面加上【?useUnicode=true&characterEncoding=UTF8;】
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/db_test?useUnicode=true&characterEncoding=UTF8;
username=root
password=itheima
5、get请求方式出现的中文乱码
有时候我们把上面的步骤都做完了,当从页面中往数据库中存数据时还是出现中文乱码的现象,如论怎么检查代码都没有发现错误,很让人崩溃。这时就需要看下是不是get请求方式的问题了。
<form action="${pageContext.request.contextPath}/urlController" method="get" autocomplete="on">
内容:<input type="text" /><br>
<button id="btn" type="submit">提交</button>
</form>
//-------把get请求换成post请求方式---------
<form action="${pageContext.request.contextPath}/urlController" method="post" autocomplete="on">
内容:<input type="text" /><br>
<button id="btn" type="submit">提交</button>
</form>
6、修改数据库配置文件中的编码
最后还有就是数据库配置文件中的字符编码格式了,这个需要找到数据库的安装目录,在数据库的安装目录里找到【my.ini】文件,选择编辑,在文件中修改或者设置字符编码
在【mysql】和【mysqld】下面分别配置字符编码,此处的编码是【utf8】一定要注意不要写成 utf-8
[mysql]
port=3306
default-character-set=utf8
[mysqld]
character-set-server=utf8
character_set_server=utf8
更多推荐
所有评论(0)