【MySQL】解决visual studio 中使用mysql数据库出现乱码问题

本文详细介绍了在Windows下VisualStudio使用MySQL时遇到的乱码问题,通过设置写入数据库时的编码为GBK,并解释了setnames命令的作用,即设置字符集转换规则,确保数据正确传输。还阐述了字符集和编码的概念,以及MySQL中的编码转换流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决visual studio 中使用mysql数据库出现乱码问题

windows下使用visual studio读写mysql数据库时,会遇到碰到乱码的问题,这是因为mysql内部使用的编码是utf8,而visual studio中使用的是gbk,解决方法如下:

一、解决方案

  • 写入数据库时设置编码为gbk
mysql_query(connect, "set names gbk")

在这里插入图片描述

二、原理

执行下面的命令:

mysql> set names charset_name;

相当于执行了下面三条命令语句:

mysql> SET character_set_client = charset_name;
mysql> SET character_set_results = charset_name;
mysql> SET character_set_connection = charset_name;

所以 set names 是设置上面三个内置系统变量的快捷键命令。

官方文档的解释:

1.character_set_client 是指客户端发送过来的语句的编码;
2.character_set_connection 是指 mysqld 收到客户端的语句后,要转换到的编码;
3.character_set_results 是指 server 执行语句后,返回给客户端的数据的编码。

对人来说,能够理解的是各种各样的符号,而对计算机来说,只能理解二进制,二进制和符号之间的对应关系就是编码。不同地域国家都有自己的一套符号集合,每套符号集合都各自用一组二进制数字表示,从而形成了不同的编码方案,字符集其实就是二进制编码和符号的对应关系集合。

同一个二进制数在不同的字符集下可能对应不一样的字符,如在 GBK 字符集中,0xC4E3 对应的是“你”,而在 big5 字符集中对应的是“斕”,而“你”在 unicode 中的编码是 0x4F60,在 Collation-Charts 这个网站有字符集和编码对应关系图,可以非常直观地看到不同编码下二进制数和符号的对应关系。

set names 设置的三个系统变量就是设置 mysqld 和客户端通信时,mysqld 应该如何解码 client 发来的字符,以及如何编码返回给客户端的结果。

字符在 MySQL 中的编码转换流程如下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值