记一次项目部署不慎导致的乱码问题

337 阅读1分钟

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

实测有效