今天用java写一个程序,用的是mysql数据库.界面出现乱码,然后写了一个过滤器结果了乱码问题. 但是,当我在mysql command line 中查询数据的时候,在界面上显示正常的数据,在mysql command line中显示乱码. 然后, 按网上说的,设置mysql编码,如下图所示: 所有项都设置成了utf-8,如下图 执行了charset gbk之后就能正常显示了,如下图所示: 问题:为什么设置成gbk能够正常显示,uf8不能正常显示呢,两种编码应该都能正常显示中文才对啊? 原因: