Java Web项目部署到Linux后的中文乱码问题

问题描述:

项目通过Maven打成war包传输到Linux上,SQL导出数据和结构后在Linux上的Mysql执行,数据都能正常显示,项目也是正常的访问到了index.html,一切显得毫无问题。
开始测试项目各个功能是否有异常,当我检查到我的模糊查询的时候发现输入中文查询不出结果,输入数字可以查出结果,打开Tomcat实时日志看到中文参数并没有乱码,那么可能是数据库的问题,通过注册功能插入了一条数据,检查数据库,果然:一个中文汉字变成了一个?
在这里插入图片描述
直接insert一条语句试试
在这里插入图片描述
是正常的,也就是说我SQL语句插入没有问题,Tomcat日志打印的中文参数也没有乱码,有点诡异。

解决办法:

首先字符乱码的情况有很多,比如字符的编码方式和解码方式不一致会导致乱码而不是问号,而有的字符集本身就不支持中文,首先要检查自己编码方式,而我的问题就是出在Linux上MySql的配置问题。
执行

show variables like 'char%';

在这里插入图片描述
character_set_clientcharacter_set_server 默认都是latin1(拉丁编码集),它对中文是不支持的。我这里是已经做了修改。
使用命令
vim /etc/my.cnf
在 [mysqld] 下添加:

character-set-server=utf8
collation-server=utf8_general_ci

在这里插入图片描述
最后再重启一下Mysql,搞定!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值