c mysql中文乱码解决方案_Linux下c读取MysqL中文乱码解决方案
在编写接口API时,发现中文字utf8输入的在linux下采用c读取显示为”??”问号,这是由于编码造成的。很简单的两个地方做修改就搞定。
1.先找到mysql的my.cnf配置文件/etc/my.cnf编辑添加
[mysqld]
default-character-set=utf8
2.在程序中添加 mysql_set_character_set(&db,”utf8″); 语句
例子:kiccleaf.c 文件
#include
//这里需要找到相应地址不知道可以用“ find / -name mysql.h ”查询
#include "/usr/include/mysql/mysql.h"
int main()
{
MYSQL db;/*connector*/
MYSQL_RES* result;/*result buffer*/
MYSQL_ROW row;/*one row of the result*/
int i;
if(mysql_init(&db) ==NULL)
{
fprintf(stderr,"Fail to initialize the db.\n");
return -1;
}
if(!mysql_real_connect(&db,"localhost","root","password","kiccleaf",3306,NULL,0))
{
fprintf(stderr,"Fail to connect to the server");
return -1;
}
//添加字符集防止乱码
mysql_set_character_set(&db,"utf8");
if(mysql_query(&db,"SELECT * FROM user") != 0)
{
fprintf(stderr,"Fail to query the db for information.\n");
return -1;
}
if ((result = mysql_store_result(&db)) == NULL)
{
fprintf(stderr,"Fail to get the result.\n");
return -1;
}
while((row=mysql_fetch_row(result)) != NULL)/*fetching each row*/
{
puts("================================================");
printf("id: %s\n",row[0]);
printf("name: %s\n",row[1]);
printf("pwd: %s\n",row[2]);
printf("flag: %s\n",row[3]);
puts("================================================");
}
mysql_free_result(result);
mysql_close(&db);
return 0;
}
编译时也会出现问题,可以添加参数 “-lz /usr/lib/mysql/libmysqlclient.so.15.0.0”
gcc -o kiccleaf -g kiccleaf.c -lz /usr/lib/mysql/libmysqlclient.so.15.0.0
原来乱码的情况
[root@kiccleaf c]# ./kiccleaf
================================================
id: 0000000001
name: ???
pwd: 123456
flag: 0
================================================
================================================
id: 0000000002
name: ???
pwd: 654123
flag: 0
================================================
================================================
id: 0000000003
name: ???
pwd: 789456
flag: 0
================================================
================================================
id: 0000000004
name: ???
pwd: 456321
flag: 0
================================================
添加字符集后输出结果:
[root@kiccleaf c]# ./kiccleaf
================================================
id: 0000000001
name: 测试1
pwd: 123456
flag: 0
================================================
================================================
id: 0000000002
name: 测试2
pwd: 654123
flag: 0
================================================
================================================
id: 0000000003
name: 测试3
pwd: 789456
flag: 0
================================================
================================================
id: 0000000004
name: 测试4
pwd: 456321
flag: 0
================================================
c mysql中文乱码解决方案_Linux下c读取MysqL中文乱码解决方案相关推荐
- linux 安装nginx php mysql 配置文件在哪_linux下 php+nginx+mysql安装配置
我主要是用来安装php,以及nginx和php的交互. 一 安装插件 可以选择YUM安装或者源码编译安装gccgcc-c++zlib pcre pcre-devel libevent libevent ...
- php mysql编译安装目录_Linux下Apache PHP MySQL默认安装路径
Linux下Apache PHP MySQL默认安装路径 Apache 如果采用RPM包安装,安装路径应在 /etc/httpd目录下 Apache配置文件: /etc/httpd/conf/http ...
- mysql数据库ftp备份_Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本...
说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的vos3000db数据库到/home/mysql_data里面,并且保存为vos3000db_bak_2012_06_30.t ...
- linux php mysql安装完整版本_Linux下安装PHP+MySQL+Apache完整版
首先下载httpd-2.2.9.tar.gz.MySQL-5.0.41.tar.gz.php-5.2.6.tar.gz.autoconf-2.61.tar.gz.freetype-2.3.5.tar. ...
- rpm安装的mysql如何数据迁移_linux下mysql数据库的rpm安装步骤及常见问题的解决
一.准备工作 从MySQL官网上分别下载mysql服务器端和客户端包. 如: MySQL-client-5.6.14-1.rhel5.i386.rpm MySQL-server-5.6.14-1.rh ...
- mysql for mac中文_mysql for Mac 下创建数据表中文显示为?的解决方法
在我的绝版Mac mini下安装了mysql 5.7版本,实例中,在通过load data 导入数据时发现表中的中文显示为 ? 通过百度,发现多个版本的解决方法,将其中一个成功解决的方法贴上来: 大 ...
- linux mysql 编码修改吗_Linux下mysql 修改编码
所做的酒店管理系统,今天用中文测试了下,发现出错了,想了下应该是mysql数据库编码的问题. 网上讲的很多都是windows的,这边整理出一份linux的 服务器系统为CentOS6.5 网页数据的编 ...
- linux 安装qt mysql库_Linux下QT平台Mysql数据库开发环境配置
This doucment is about how to add mysql driver into QT and about database connections 由于之前安装RedH ...
- mysql8.0 服务移除_Linux下彻底删除Mysql 8.0服务的方法
观看本文前最好有一定的Linux命令基础,具体为centos7.3环境中清除使用yum安装的Mysql 卸载前请先关闭Mysql服务 service mysql stop 使用 rpm 命令的方式查看 ...
- linux怎么查看mysql安装在哪里_Linux下查看MySQL的安装路径
Linux下查看mysql.apache是否安装,并卸载. 指令ps -ef|grep mysql得出结果 root 17659 1 0 2011 ? 00:00:00 /bin/sh /usr/bi ...
最新文章
- What Are Words(一诺千金)
- Oracle Golden Gate 系列 小结
- 同济大学和东南大学计算机哪个好,东南大学和同济大学哪个好?选择哪个以后发展比较好?...
- 封装不同类模板的随机数生成器
- 【MFC系列-第33天】链接控件自绘技术
- java获取u盘_实例分享java监听u盘的方法
- java opencv4.5 人脸对比_2020大数据Java面试总结(未完待续)
- 使用swfupload出现2049的错误原因
- “SAP.Middleware.Connector.RfcDestinationManager”的类型初始值设定项引发异常
- WebService 之 WSDL详解
- matlab 模式识别(第四版),模式识别与智能计算—MATLAB技术实现(第4版)
- springboot电影院订票售票系统毕业设计毕设作品开题报告开题答辩PPT
- 欺骗的艺术——你被社工了吗?
- 微信小程序的下载安装
- c语言误差椭圆,平差计算
- c语言 电阻器的分类,电阻器的分类
- 阿里云OSS上传图片慢的处理方案
- ArcGIS裁剪影像如何保持裁剪完全一致
- 可导区间中的唯一驻点一定是极值点吗?
- 1. Resnet网络详解
热门文章
- 点击次数(thinkphp)
- ios获取设备的唯一标识mac address
- 记录自定义view的基本使用
- i12单双耳切换_“摸一摸”,乐在其中 | 雷柏i100蓝牙TWS耳机,主从切换,可单耳使用,也可双耳使用...
- The Entity Framework tools version升级
- C#LINQ方法操作-Max求数组集合中最大值
- php 获取url中的参数
- c语言烟花代码vc,C语言烟花程序
- Yaf引入oss sdk
- 全网首发:怎样制作CDKEY(5)-让CDKEY更混乱