新部署网站项目,浏览器中文输入,网页显示???乱码

新开发一个网站,最近再Linux centos7上进行了部署,但是发现,浏览器中中文输入,网页显示的是问好乱码,通过一个周末的连续调试和查找网上资料,问题终于找到,并解决。现将问题情况分析,及解决方法进行分享,希望能对同样遇到问题的人有用。
新部署网站项目,浏览器中文输入,网页显示???乱码

一、原因分析。
网上查询很多资料,大多数人分享经验把问题,归结到tomcat上,这也是我花了那么多时间。
还有部分人,分享是原代码编码有问题。或者是网页前端编码问题。
以上可能有人是这种情况,但是,我遇到的是数据编码格式不正确。
二、主要问题。
新发布项目,特别是新购买服务器,要想运行网站,目前大多数都需要新安装数据库。由于我购买的阿里云2核1G 服务器,所以我安装的是mysql 5.5,高版本一是不够稳定,二是太大,占资源太多。
新安装的数据库,默认编码是latin1,这种编码方式不稳定,对中文不兼容,(也有特例,当都是latin1编码,中文也识别),所以我们要把数据编码方式改为utf8。
三调试方法
1.查看当前sql系统变量,查看系统字符集,执行如下sql

show variables like ‘%character%’;
新部署网站项目,浏览器中文输入,网页显示???乱码
会发现database 和server 为Latin1

2.改变编码方式
数据库中输入以下代码,可以更改编码方式
SET character_set_server=‘utf8’;
SET character_set_database = ‘utf8’;
缺点,数据库重启,又恢复成原来情况。

另外一种,长期有效,修改/etc/my.cnf 配置,部分机器安装后,没有这个文件,其实是存在的,只是空文件。
我们可以通过命令
mysql --help|grep my.cnf
查询到该文件的位置。

在my.cnf中添加如下代码
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8

再数据库重新启动,问题解决!

感谢以下博主分享
https://blog.****.net/hrk0909/article/details/109292633?utm_medium=distribute.wap_relevant.none-task-blog-title-2