在编写接口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中文乱码解决方案相关推荐

  1. linux 安装nginx php mysql 配置文件在哪_linux下 php+nginx+mysql安装配置

    我主要是用来安装php,以及nginx和php的交互. 一 安装插件 可以选择YUM安装或者源码编译安装gccgcc-c++zlib pcre pcre-devel libevent libevent ...

  2. php mysql编译安装目录_Linux下Apache PHP MySQL默认安装路径

    Linux下Apache PHP MySQL默认安装路径 Apache 如果采用RPM包安装,安装路径应在 /etc/httpd目录下 Apache配置文件: /etc/httpd/conf/http ...

  3. mysql数据库ftp备份_Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本...

    说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的vos3000db数据库到/home/mysql_data里面,并且保存为vos3000db_bak_2012_06_30.t ...

  4. 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. ...

  5. rpm安装的mysql如何数据迁移_linux下mysql数据库的rpm安装步骤及常见问题的解决

    一.准备工作 从MySQL官网上分别下载mysql服务器端和客户端包. 如: MySQL-client-5.6.14-1.rhel5.i386.rpm MySQL-server-5.6.14-1.rh ...

  6. mysql for mac中文_mysql for Mac 下创建数据表中文显示为?的解决方法

    在我的绝版Mac mini下安装了mysql 5.7版本,实例中,在通过load data 导入数据时发现表中的中文显示为  ? 通过百度,发现多个版本的解决方法,将其中一个成功解决的方法贴上来: 大 ...

  7. linux mysql 编码修改吗_Linux下mysql 修改编码

    所做的酒店管理系统,今天用中文测试了下,发现出错了,想了下应该是mysql数据库编码的问题. 网上讲的很多都是windows的,这边整理出一份linux的 服务器系统为CentOS6.5 网页数据的编 ...

  8. linux 安装qt mysql库_Linux下QT平台Mysql数据库开发环境配置

    This doucment is about how to add mysql driver into QT and about database connections     由于之前安装RedH ...

  9. mysql8.0 服务移除_Linux下彻底删除Mysql 8.0服务的方法

    观看本文前最好有一定的Linux命令基础,具体为centos7.3环境中清除使用yum安装的Mysql 卸载前请先关闭Mysql服务 service mysql stop 使用 rpm 命令的方式查看 ...

  10. linux怎么查看mysql安装在哪里_Linux下查看MySQL的安装路径

    Linux下查看mysql.apache是否安装,并卸载. 指令ps -ef|grep mysql得出结果 root 17659 1 0 2011 ? 00:00:00 /bin/sh /usr/bi ...

最新文章

  1. What Are Words(一诺千金)
  2. Oracle Golden Gate 系列 小结
  3. 同济大学和东南大学计算机哪个好,东南大学和同济大学哪个好?选择哪个以后发展比较好?...
  4. 封装不同类模板的随机数生成器
  5. 【MFC系列-第33天】链接控件自绘技术
  6. java获取u盘_实例分享java监听u盘的方法
  7. java opencv4.5 人脸对比_2020大数据Java面试总结(未完待续)
  8. 使用swfupload出现2049的错误原因
  9. “SAP.Middleware.Connector.RfcDestinationManager”的类型初始值设定项引发异常
  10. WebService 之 WSDL详解
  11. matlab 模式识别(第四版),模式识别与智能计算—MATLAB技术实现(第4版)
  12. springboot电影院订票售票系统毕业设计毕设作品开题报告开题答辩PPT
  13. 欺骗的艺术——你被社工了吗?
  14. 微信小程序的下载安装
  15. c语言误差椭圆,平差计算
  16. c语言 电阻器的分类,电阻器的分类
  17. 阿里云OSS上传图片慢的处理方案
  18. ArcGIS裁剪影像如何保持裁剪完全一致
  19. 可导区间中的唯一驻点一定是极值点吗?
  20. 1. Resnet网络详解

热门文章

  1. 点击次数(thinkphp)
  2. ios获取设备的唯一标识mac address
  3. 记录自定义view的基本使用
  4. i12单双耳切换_“摸一摸”,乐在其中 | 雷柏i100蓝牙TWS耳机,主从切换,可单耳使用,也可双耳使用...
  5. The Entity Framework tools version升级
  6. C#LINQ方法操作-Max求数组集合中最大值
  7. php 获取url中的参数
  8. c语言烟花代码vc,C语言烟花程序
  9. Yaf引入oss sdk
  10. 全网首发:怎样制作CDKEY(5)-让CDKEY更混乱