记录一次奇葩的mysql中文乱码问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/dataiyangu/article/details/100586462


背景

在本地idea中中文不乱码,但是到了linux服务器上乱码了(插入操作)。

排查

查看数据库jdbc的编码

在这里插入图片描述
没有问题

查看linux服务器的编码

locale
在这里插入图片描述
没有问题
需注意的是:如果默认语言是en_US.UTF-8,在Linux的字符和图形界面下都是无法显示和输入中文的。如果默认语言是中文,比如zh_CN.GB18030 或者zh_CN.gb2312,字符界面无法显示和输入,图形界面可以。
所以这里的zh_CN.UTR-8是正确的
https://www.cnblogs.com/saneri/p/5779119.html

查看mysql服务器编码

/etc/mysql/my.cnf
然后打开my.cnf,添上:
[client]
default-character-set=utf8
在[mysqld]这段里面,添上
character-set-server=utf8
保存,并重启mysql服务,就行了。
重启命令 service mysql restart
以上来自:https://blog.csdn.net/anod/article/details/77876974

通过show variables like ‘character%’ ; 查看字符集,
SET character_set_database = utf8;
SET character_set_server = utf8;之后重启删掉库表,新建库表
以上来自:https://blog.csdn.net/zl834205311/article/details/81703560

通过查看还是没有问题的

万万没想到

仔细想想,本地没有问题,移到linux就有问题,不可能是mysql服务器的问题,只可能是linux服务器的编码问题,可是经过排查是没有问题的,那么~~~ 通过打开打完的war包,查看class文件
在这里插入图片描述
呆若木鸡,打包就打错了,存库里面能不乱吗me?睿智

最终解决

maven中加入utf-8的plugin

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.2</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

猜你喜欢

转载自blog.csdn.net/dataiyangu/article/details/100586462