在使用mysql数据库时,经常会遇到汉字显示乱码的问题。
造成这个问题的原因主要有两个:
1.数据库的字符集不一致
# 查看数据库的默认字符集show variables like 'character_set_database';# 查看表的默认字符集show create table;
如果数据库或者表的字符集与实际存储的数据不一致,就会出现乱码。
2.连接数据库的编码与数据库字符集不一致
# 查看当前连接的编码show variables like 'character_set_connection';# 修改连接编码(如改为utf8)set character_set_connection=utf8;
如果连接数据库的编码与数据库字符集不一致,也会出现乱码。
解决汉字乱码问题的方法:
1.简单粗暴的方法,把数据库和连接编码都改为utf8或者utf8mb4(包含emoji表情)。
# 修改数据库字符集alter database 2.对于已经存储的数据,可以使用iconv等工具进行转码。 # 将gbk编码的字符串转换为utf8编码iconv -f gbk -t utf8< source.txt >target.txt 总之,为了避免汉字乱码问题,我们在创建数据库、表和连接数据库的时候,一定要注意字符集设置和编码设置。