发布时间:2023-05-17 文章分类:WEB开发, 电脑百科 投稿人:李佳 字号: 默认 | | 超大 打印

文章目录

  • 本编文章列举了Java Web编程中所有可能导致中文乱码的问题以及解决方法
    • 1、html页面乱码
    • 2、request乱码
    • 3、Java文件乱码
    • 4、jdbc乱码
    • 5、tomcat日志乱码
    • 6、response乱码

本编文章列举了Java Web编程中所有可能导致中文乱码的问题以及解决方法

1、html页面乱码

首先第一点便是html页面乱码问题
例如:
Java Web中文乱码,解决方法!!

此时我们需要在项目中找到该网页的html文件,在html文件头部中找到
meta charset=“”;

Java Web中文乱码,解决方法!!

然后将meta中的charset改为charset=“UTF-8”

如下图示:
Java Web中文乱码,解决方法!!

2、request乱码

在debug中我们可以看到,在html界面的输入框中输入中文,在Servlet中进行处理时会出现乱码问题。
Java Web中文乱码,解决方法!!Java Web中文乱码,解决方法!!

此种情况,我们需要在Servlet的数据处理方法中设置request编码字符集,既可以解决问题。

Java Web中文乱码,解决方法!!

3、Java文件乱码

在Java代码中,所有中文出现了乱码问题。
Java Web中文乱码,解决方法!!

Idea中可以在右下角,点击图中的字段,切换成UTF-8字符集
如图所示:
Java Web中文乱码,解决方法!!

友情提示,某些编码字符集是不支持中文的,所有在选中该编码字符集以后,中文乱码是不可逆的(如:ISO-8859-1),建议勿试。

4、jdbc乱码

JDBC连接数据库插入中文数据乱码。解决方法如下:
1、IDEA自身编码格式不是utf8
解决方式:
在IDEA中根据这个目录 File | Settings | Editor | File Encodings中,不是则修改过来
Java Web中文乱码,解决方法!!
2、数据库编码不是utf8
解决方式:
在数据库中用下面这个命令查看当前数据库的字符集编码,如果不是utf8就改过来。

show variables like '%character%';

3、JDBC连接时规定的字符集编码不是utf8
解决方式:
修改前

jdbcUrl=jdbc:mysql:///db5?serverTimezone=UTC

修改后

jdbcUrl=jdbc:mysql:///db5?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8

问题便解决了

5、tomcat日志乱码

tomcat启动时,控制台中所有的中文都是乱码。
如下图:

Java Web中文乱码,解决方法!!

解决方法:找到apache-tomcat文件在conf中找到logging.properties文件打开。
Java Web中文乱码,解决方法!!

找到图中红框中的内容,通过红框中的内容确认目前logging.properties文件使用的是什么字符集,则将logging.properties文件中所有该字符集全部替换为GKB,即可解决问题。

6、response乱码

在Servlet的service方法中,我们通过中文返回响应提示。Java Web中文乱码,解决方法!!
到html界面后中文转变为了如图所示乱码。
Java Web中文乱码,解决方法!!
解决方法:

//设置response编码
resp.setCharacterEncoding("UTF8");
//设置响应数据类型
resp.setContentType("text/html;charset=UTF8");

本篇文章以UTF-8为默认字符集,使用的Idea软件,希望大家能在本篇文章中寻找到自己遇到的困难的最优解!