最近做了一个项目,当我把数据库放在阿里云的centos中时,插入的中文全部乱码,这让我很不开心,于是我尝试去解决。
可以通过如下命令来查看mysql数据库中的当前编码:
(1) 服务器端字符集 对应查看命令: show global variables like ‘%chara%’;
(2) 客户端端字符集 对应查看命令: show variables like ‘%chara%’; 或者 show session variables like ‘%chara%’;通过以上命令查看之后,你会发现你的服务器端编码与客户端编码不一致,这就是导致乱码的原因。目前常用字符集应该是utf-8吧,我们就把所有的编码都修改成utf-8。当然,统一修改成其他编码应该也可以,这是我没有尝试过,有兴趣的可以尝试一下。
(1) 修改客户端编码: 使用
set names 'utf8'
;
(2) 修改服务端编码:通过修改配置文件完成,具体如下:
首先打开my.cnf文件: vi /etc/my.cnf
然后在[mysqld]下方添加如下图中红色框内的语句
最后重启mysql服务: service mysqld restart此时再次查看服务端和客户端编码,如果不出意外,应该都修改成了utf-8了。
【另】
我在网上还看到下面这种方法,但是我用的时候想xml文件总是报错,但是你可以试试,也许你不会报错,哈哈哈哈。。。
程序连接需要指定字符集,以java代码为例:
jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8
希望这些方法对你有帮助。