Tomcat 和 MySQL 引起的乱码问题

原文地址:https://blog.csdn.net/smile_Running/article/details/91409942

    在服务器与数据库交互这块经常出现乱码问题,由于我的系统时不时重装一下,导致在配置Tomcat服务器与MySQL数据库时,一时间忘记给它的编码修改为UTF-8,导致出现在向数据库写入数据时出现乱码情况,在检查了一番问题后,IED、代码中、数据库及数据表都为UTF-8的格式,浏览器编码也是UTF-8格式,最后把问题抛向Tomcat配置信息与MySQL数据库的配置信息,果不其然,发现它们的编码都不是使用。

    如果你也有和我一样的问题,请先登入数据库,我这边使用的是MySQL数据库,不同数据库登入方式不同,这里不多介绍,我以MySQL为例子,首先我们应该查询一下当前数据库的状态,这个命令会显示编码。

status 查看当前数据库状态信息:

Tomcat 和 MySQL 引起的乱码问题_第1张图片

发现这里的编码设置成了latinl,这就是导致写入数据时造成乱码的原因之一。

解决方法是到MySQL根目录  my.ini 文件,我们可以利用 notepad++工具打开它

Tomcat 和 MySQL 引起的乱码问题_第2张图片

将下面这两个编码都换成 utf8 的格式,注意:utf8

Tomcat 和 MySQL 引起的乱码问题_第3张图片

这是我们到任务管理器中,将我们的MySQL服务重启即可。

Tomcat 和 MySQL 引起的乱码问题_第4张图片

重新启动MySQL服务之后,我们再次登入MySQL数据库,查看当前编码是否被修改了。

Tomcat 和 MySQL 引起的乱码问题_第5张图片

    果然,修改成功了。但可能你还会遇到乱码没法解决的情况,虽然MySQL修改过来了,但是我们的 Tomcat 服务器编码还没有做修改,这是第二个原因。

    当然了,你可能用的 Tomcat 版本比较高,如果是 Tomcat 8 版本之后的话,它的默认编码已经是 utf-8 了,这时你还乱码的话,也许是代码转码问题或其他者哪里出错了,但 Tomcat 7 之前的默认编码是 iso8859-1 ,这时你需要注意自己的 Tomcat 版本了,我们这里使用命令来查看 Tomcat 版本。

    很多人都知道 startup 启动 Tomcat ,也许你不知道 catalina 这个命令,我们在添加系统环境变量的时候,加的就有 catalina_home 这个目录,它也是指到 Tomcat 根目录。所以,可以使用 catalina 开头的命令来操作 Tomcat

catalina version 查看数据库版本,当然你也可以开启 Tomcat 服务器,然后数据 localhost:8080 来查看,都是可以的。

Tomcat 和 MySQL 引起的乱码问题_第6张图片

    由于我这里的版本已经大于 8.0 了,所以这个编码问题已经不存在了。如果你的版本小于 8 的话,那就到 Tomcat 的根目录下,找到 conf > server.xml 文件,也用 notepad++ 打开。Tomcat 和 MySQL 引起的乱码问题_第7张图片

找到如下标记中,添加 URIEncoding="UTF-8" ,注意:使用英文的符号。

经过这样的操作之后,一般乱码的情况可以解决了。如果还出现乱码,可以排除这两个原因,去检查代码、数据库、数据表及其他的编码问题。

原文地址:https://blog.csdn.net/smile_Running/article/details/91409942

你可能感兴趣的:(软件使用)