2019.11.14日去甲方现场给他们本地服务器部署项目时,搭建好了JDK、MySql和Tomcat环境,并将war包部署好之后直接访问localhost:8080/index,发现并无问题,然而在刚说完没有问题准备开始演示时,发现在第一步的操作的Add方法执行完毕后竟然出现了中文乱码(问好)。
于是开始排查问题,发现可能是安装mysql的时候没有设置字符编码为utf8
解决策略一:
1.查询数据库字符编码格式:root MySqlPassword!
show variables like 'character%';
正常情况为上半部分,配置文件没有进行配置为下半部分
2.修改mysql配置文件
配置文件默认路径:C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
[mysql]
default-character-set=utf8
[mysqld]
character_set_server=utf8
[mysql] 都是客户端的编码设置,[mysqld]是服务器端的设置。
3.复制修改后的配置文件到Mysql安装路径:C:\Program Files\MySQL\MySQL Server 5.7
解决策略二:
无需修改mysql配置文件,只需要在项目配置JDBC的地方在url路径后追加字符编码设置即可
url: jdbc:mysql://localhost/tendering?characterEncoding=utf8&useSSL=false&useUnicode=true&0=true&useLegacyDatetimeCode=false&serverTimezone=UTC
实测有效