记一次wind10下使用C语言连接MySQL出现中文乱码的问题,及解决方法

MySQL会出现中文乱码的原因不外乎下列几点:
1.server本身设定问题,例如还停留在latin1


2.table的语系设定问题(包含character与collation)


3.客户端程式()的连线语系设定问题


过程,首先产看数据库和表格的编码,

show create database banl;

show create table card;

继而查看系统character变量的系统值,

show variables like "%char%"

最后查看dos控制台的编码,属性里面。

dos 编码:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor],新建一个字符串值,key-value如下:

"autorun"="chcp 65001",之后重新打开cmd即可。

其实就是设置得到结果集使用什么解码方式



关于charater的相关字段的解释

通常的使用中,character_set_client,character_set_connection这两个变量的值是一样的,也就是说查询不需要进行编码转换。这样看来变量character_set_connection有些多余。当查询进入时,查询会被服务器从character_set_client转换到character_set_connection,当查询执行时,查询会被服务器从character_set_connection转换到列字符集。查询反回时,数据直接被服务器从列字符集转换到character_set_results。



以下来自博客园

1.查看数据库编码格式

1
mysql> show variables like 'character_set_database';

 2.查看数据表的编码格式

1
mysql> show create table <表名>;

 3.创建数据库时指定数据库的字符集

mysql>create database <数据库名> character set utf8;

4.创建数据表时指定数据表的编码格式

create table tb_books (
    name varchar(45) not null,
    price double not null,
    bookCount int not null,
    author varchar(45) not null ) default charset = utf8;

5.修改数据库的编码格式

mysql>alter database <数据库名> character set utf8;

6.修改数据表格编码格式

mysql>alter table <表名> character set utf8;

7.修改字段编码格式

mysql>alter table <表名> change <字段名> <字段名> <类型> character set utf8;

mysql>alter table user change username username varchar(20) character set utf8 not null;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值