如何解决mysql 查询中文乱码问题
一:设置mysql的字符集
首先打开mysql命令行窗口,输入以下命令:
mysql> show variables like 'character%';
可以查看mysql的字符集设置是否正确,一般都是utf8。
如果不是,可以通过以下语句修改:
mysql> set character_set_client=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_connection=utf8;
二:设置mysql的数据表和字段字符集
如果数据库已经创建好并且插入了数据,那么直接修改mysql的字符集可能无法解决问题,要在已有的数据表和字段上进行设置。
首先查看数据表的字符集和校对规则:
mysql> show create table student;
可以看到表的字符集为latin1,此时可以通过ALTER语句修改:
mysql> alter table student convert to character set utf8;
然后查看数据表中字段的字符集:
mysql> show full columns from student;
可以看到字段name的字符集为latin1,也可以通过ALTER修改:
mysql> alter table student modify name varchar(20) character set utf8;
三:设置数据库连接字符集
如果前两种方法都没有起效,可以尝试在数据库连接时设置字符集。比如在Java中使用JDBC连接数据库,在获取连接之前可以添加如下参数:
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8";
Connection conn = DriverManager.getConnection(url, "root", "password");
其中url参数中的useUnicode=true和characterEncoding=utf8表示使用utf8编码。
总结
解决mysql查询中文乱码问题的方法很多,以上方法仅是其中一种。在开发中,遇到问题要多尝试不同的解决办法,多查阅相关资料,学习不同的解决方法,才能更好地解决问题。

-
mysql修改表结构的语句是什么 2023-05-14 07:00:03
-
MySQL 语法整理介绍 2023-05-14 07:00:03
-
mysql驱动是什么 2023-05-14 07:00:03
-
qt5.8如何连接mysql 2023-05-14 07:00:03
-
mysql怎么将查询结果赋给变量 2023-05-14 07:00:03
-
mysql乐观锁和悲观锁的区别是什么 2023-05-14 07:00:03
-
一起聊聊MySQL主从延时的处理方案 2023-05-14 07:00:03
-
mysql怎么查询所有数据库 2023-05-14 07:00:02
-
mysql怎么查询临时表 2023-05-14 07:00:02
-
mysql中between and怎么用 2023-05-14 07:00:02