tomcat与servlet程序出现乱码的解决方法(已解决)

文章目录

    • 情况说明
    • 查看网页的编码格式
    • 查看数据库的编码格式
    • 修改数据库字符集(非必要)
    • servlet程序部分
    • html页面部分
    • tomcat部分
    • idea部分

情况说明

tomcat与servlet程序出现乱码的解决方法(已解决)_第1张图片

乱码如上,我使用我设计的页面添加数据到数据库中后会发现数据库中的数据会出现乱码,但是其实真正的原因应该是这些表单数据传递到servlet程序的过程中由于编码的格式出现了乱码.但是后面终于解决了.
在这里插入图片描述

查看网页的编码格式

按下F12,再控制台/Console中输入

document.charset

tomcat与servlet程序出现乱码的解决方法(已解决)_第2张图片

查看数据库的编码格式

show create database + 数据库名

tomcat与servlet程序出现乱码的解决方法(已解决)_第3张图片

修改数据库字符集(非必要)

找到my.ini文件
在mysqld上面加两句话

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

tomcat与servlet程序出现乱码的解决方法(已解决)_第4张图片
输入这句话查看字符集

SHOW VARIABLES LIKE 'character%';

tomcat与servlet程序出现乱码的解决方法(已解决)_第5张图片

记住重启mysql
当然, 你也可以使用dbeaver或者navicat中自带的方法直接修改数据库的字符集
tomcat与servlet程序出现乱码的解决方法(已解决)_第6张图片

servlet程序部分

input的提交借助于一个表单,表单的提交有两种选择,一种是post,另一种是get.
直接加上这句话即可

  	req.setCharacterEncoding("utf-8");
        resp.setHeader("content-type","text/html;charset=UTF-8");
        resp.setCharacterEncoding("UTF-8");

tomcat与servlet程序出现乱码的解决方法(已解决)_第7张图片
这句话基本可以解决很多问题了,如果还不行可能就是底层文件的问题了,可以试着修改tomcat的servlet.xml程序

tomcat与servlet程序出现乱码的解决方法(已解决)_第8张图片

tomcat与servlet程序出现乱码的解决方法(已解决)_第9张图片

   <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
			   URIEncoding="UTF-8"
			   useBodyEncodingForURI="true"/>

html页面部分

表单的提交可以在里面加入accept-charset设定提交字符集以及meta标签中添加charset设定字符集的方法

 <meta http-equiv="content-type" content="text/html" charset="UTF-8">
<form action="hotelServlet" method="get" accept-charset="UTF-8">

tomcat部分

-Dfile.encoding=UTF-8

tomcat与servlet程序出现乱码的解决方法(已解决)_第10张图片

idea部分

tomcat与servlet程序出现乱码的解决方法(已解决)_第11张图片
tomcat与servlet程序出现乱码的解决方法(已解决)_第12张图片

tomcat与servlet程序出现乱码的解决方法(已解决)_第13张图片
tomcat与servlet程序出现乱码的解决方法(已解决)_第14张图片
tomcat与servlet程序出现乱码的解决方法(已解决)_第15张图片

你可能感兴趣的:(web,mysql,tomcat,java)