C语言如何查看和修改MySQL使用的字符集
来源:互联网 发布:便携式网络测试仪 编辑:程序博客网 时间:2024/05/17 02:59
最近用C语言连接数据库,插入数据时如果数据中存在汉字,插入会失败。最后搞明白了是MySQL使用的字符集的问题。
1、如何查看当前连接的数据库使用的字符集
MySQL提供的接口函数prototype为:
void STDCALL mysql_get_character_set_info(MYSQL *mysql,
MY_CHARSET_INFO *charset);
其中 MY_CHARSET_INFO 结构体定义如下:
typedef struct character_set{ unsigned int number; /* character set number */ unsigned int state; /* character set state */ const char *csname; /* collation name */ const char *name; /* character set name */ const char *comment; /* comment */ const char *dir; /* character set directory */ unsigned int mbminlen; /* min. length for multibyte strings */ unsigned int mbmaxlen; /* max. length for multibyte strings */} MY_CHARSET_INFO;调用上述函数并打印结果:
MY_CHARSET_INFO charset;mysql_get_character_set_info(mysql, &charset);printf("character set number:%d\n", charset.number);printf("character set state:%d\n", charset.state);printf("collation name:%s\n", charset.csname);printf("character set name:%s\n", charset.name);printf("comment:%s\n", charset.comment);printf("character set directory:%s\n", charset.dir);printf("min. length for multibyte strings:%d\n", charset.mbminlen);printf("max. length for multibyte strings:%d\n", charset.mbmaxlen);结果如下:
可以看出当前数据库使用的字符集为latin1。现在还不知道为什么插入汉字会提示出错,虽然客户端、连接、数据库三个方面使用的字符集都是latin1,按理说latin1使用了字节的所有8位空间,不管什么字节流过来都不会报错。
2、如何修改当前连接使用的字符集
MySQL提供的接口函数prototype为:
int STDCALL mysql_set_character_set(MYSQL *mysql, const char *csname);
成功返回0,失败返回非0。
在网上查资料有人说使用"utf8",我试了一下,发现还是不行。使用“GBK”可以:
if (!mysql_set_character_set(mysql, "GBK")){printf("New connection character set: %s\n",mysql_character_set_name(mysql));}
其字符集信息如下:
The End.
- C语言如何查看和修改MySQL使用的字符集
- mysql查看和修改字符集的命令
- mysql查看和修改字符集的命令
- mysql查看和修改字符集的命令
- MySQL查看和修改字符集的方法
- 如何查看mysql的字符集
- 如何查看和修改Oracle数据库服务器端的字符集
- 如何查看和修改Oracle数据库服务器端的字符集
- 如何查看和修改Oracle数据库服务器端的字符集
- CentOS查看和修改MySQL字符集
- CentOS查看和修改MySQL字符集
- 查看修改MySQL字符集
- 查看修改MySQL字符集
- MYSQL查看修改字符集
- 查看修改MySQL字符集
- 如何查看和修改操作系统字符集
- 如何查看和修改操作系统字符集
- 如何查看和修改操作系统字符集
- 、sleep() wait() yeild()三者之间的区别?
- 转载 outlook express 日文邮件乱码
- vim中回车换行缩进问题
- 线程知识点总结
- 恢复win7开机动画
- C语言如何查看和修改MySQL使用的字符集
- tomcat6.0_+_myeclipse8.5_+_jdk_完整配置环境(很详细)
- MongoDB java方法
- HTTP错误 大全 403 401 400 404 304 200
- 修改数据库中表的所有者为dbo。
- 项目计划管理软件:GanttProject
- vim 命令
- 改善C++代码的学习笔记2
- Shanghai ** Product Development Plan