【编译中遇见的问题】

      ①在用vc 6.0去调用MySQL中的数据时,出现中文乱码

      ②不明白mysql中的码制

【开始解决问题】

     ①打开mysql控制台


 

     ②开始展示自己



 

     ③打开vc 6.0(配置mysql环境在这里我就不哆嗦了)

走起.....在vc 6.0中复制下列代码,进行连接mysql和调用代码如下:

#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mysql.h> 
#include <iostream>
#pragma comment(lib, "ws2_32")  
#pragma comment(lib, "libmysql") 
using namespace std;

//-------------------------------------调用mysql数据库--------------------------------------。
void xian()
{
  //variables like 'char%'
  MYSQL mysql;
  MYSQL_RES *resultset;  
  MYSQL_ROW row;
  mysql_init(&mysql); 
  mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "utf8");
  cout<<"-------------------------------------------------------"<<endl;
  cout<<"| 性命 |"<<" 性别 |"<<" 年龄 |"<<" 诊断结果 |"<<" 处方 |"<<" 费用 |"<<" 时间 |"<<endl;
  cout<<"----------------------------------------------------------------"<<endl;
  if (!mysql_real_connect(&mysql, "localhost", "root", "123456", "zhaofulu", 3306, NULL, 0))  
  {  
  cout <<"\n数据库连接发生错误!";  
  }  
  else  
  { 
  if(mysql_query(&mysql,"select * from users"))
  {
  cout << "查询失败";
  }
  else
  {
  resultset = mysql_store_result(&mysql);// 获得结果集 
  if (mysql_num_rows(resultset) != NULL)  
  { 
  int numFields = mysql_num_fields(resultset);// 获得表中字段数
  
  while (row = mysql_fetch_row(resultset))  
  {  
  int i = 0;  
  for (i = 0; i < numFields; i++)  
  { 
  cout<<"| "<< row[i]<<"  ";
  }
  cout<<"|";
  cout<<endl;
  cout<<"----------------------------------------------------------------"<<endl; 
  }  
  }  
  else  
  {  
  cout<<"\n无查询结果!";  
  }  
  cout<<endl;
  
  }
  }
  
}
//---------------------------数据库的连接------------------------------。
int main()
{
    const char user[] = "root";         //username
    const char pswd[] = "123456";         //password
    const char host[] = "localhost";    //or"127.0.0.1"
    const char table[] = "zhaofulu";        //database
    unsigned int port = 3306;            //server port        
    MYSQL mysql;
    mysql_init(&mysql);
    if(mysql_real_connect(&mysql,host,user,pswd,table,port,NULL,0))
    {
        cout<<"connect succeed!"<<endl; 
xian();
    }
    else
    {
        cout<<"connect failed!"<<endl;
}
    mysql_close(&mysql);//断开连接
    return 0;
}

    ③运行vc 6.0           

【问题出现】

       运行vc 6.0之后的乱码现象截图:


 

    出现乱码现象,没有像mysql中预先输入显示的效果(此时很是纠结)

    这时你开始研究代码,开始查资料,得到的结果都一样:编码问题

    这时你开始把代码中的一行代码挑了出来(其他都研究懂了,就剩下这一条):

    mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "utf8");//必须要在本函数全局定义 

    你可能会理解这是要让此函数中的所有输入和输出都以编码为utf8的格式进行

【开始解决问题】

 打开mysql控制台(查看所建的zhaofulu数据库的编码属性)


   zhaofulu数据库的编码属性为gbk

   ②在查看在zhaofulu下的user表的所有属性


 

所以把代码 mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "utf8");

改成 mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "latin1");

【再次运行vc 6.0】

 


 

【另一种方法】:

在mysql控制台上用命令:set character_set_client=gbk    进行编码修改

vc6.0运用mysql数据库中的编码所导致的乱码问题(接收和输出的编码必须要一致)的更多相关文章

  1. vc6.0连接mysql数据库

    一.MySQL的安装 Mysql的安装去官网下载就可以...最新的是5.7版本.. 二.VC6.0的设置 (1)打开VC6.中选0 工具栏Tools菜单下的Options选项,在Directories ...

  2. mybatis查询mysql 数据库中 BLOB字段,结果出现乱码

    起因 mybatis-plus 通过Mapper 查询数据,映射出来的BLOB字段中的yml数据中文是乱码的 --- DefaultValue: '' Formula: '' HintContent: ...

  3. 用JDBC把Excel中的数据导入到Mysql数据库中

    步骤:0.在Mysql数据库中先建好table 1.从Excel表格读数据 2.用JDBC连接Mysql数据库 3.把读出的数据导入到Mysql数据库的相应表中 其中,步骤0的table我是先在Mys ...

  4. html页面通过http访问mysql数据库中的内容,实现用户登录的功能

    需求: 通过html编写用户登录页面,页面内容包括用户名.密码和登录按钮,点击登录后访问login.php文件,使用按钮默认的submit提交用户名和密码,在login.php中访问mysql数据库, ...

  5. node 爬虫 --- 将爬取到的数据,保存到 mysql 数据库中

    步骤一:安装必要模块 (1)cheerio模块 ,一个类似jQuery的选择器模块,分析HTML利器. (2)request模块,让http请求变的更加简单 (3)mysql模块,node连接mysq ...

  6. MySQL数据库中delimiter的作用概述

    以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 其实就是告 ...

  7. PHP往mysql数据库中写入中文失败

    该类问题解决办法就是 在建立数据库连接之后,将该连接的编码方式改为中文. 代码如下: $linkID=@mysql_connect("localhost","root&q ...

  8. 从SQLSERVER/MYSQL数据库中随机取一条或者N条记录

    从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 很多人都知道使用rand()函数但是怎麽使用可能不是每个人都知道 建立测试表 USE [sss] GO ,NAME ) DEFAULT ...

  9. 在mysql数据库中制作千万级测试表

    在mysql数据库中制作千万级测试表 前言: 最近准备深入的学一下mysql,包括各种引擎的特性.性能优化.分表分库等.为了方便测试性能.分表等工作,就需要先建立一张比较大的数据表.我这里准备先建一张 ...

随机推荐

  1. 第四篇T语言实例开发,自动加血

    游戏自动加血 基础知识复习 通过前面的学习了解以下内容: TC软件的基本使用 TC的基础语法 变量与常量 功能的使用 流程语句的使用 线程的基本使用 TC控件的基本使用 热键和按钮的事件功能 控件的数 ...

  2. Maven安装最佳实践(Windows平台)

    第一步:下载maven,解压缩. 在maven官网下载maven文件,这里我下载的是"apache-maven-2.2.1-bin.zip",如果需要maven的源代码,可以选择下 ...

  3. Linear Algebra lecture3 note

    Matrix multiplication(4 ways!) Inverse of A Gauss-Jordan / find inverse of A   Matrix multiplication ...

  4. servlet有关概念

    关于servlet的概念 URL.URN与URi HTTP GET请求,POST请求(区别.适用) 编码 动态网页(GCI.PHP.ASP.JSP等)与静态网页 Model2 静态网页:指的是请求服务 ...

  5. (转) WTF is computer vision?

        WTF is computer vision? Posted Nov 13, 2016 by Devin Coldewey, Contributor   Next Story   Someon ...

  6. InfoPi简介、试用链接、资料索引

    InfoPi的定位是“个人信息收集服务器”. 用户可以灵活地定义信息的来源,比如从网页抓取感兴趣的信息.订阅博客.从温度传感器读取数据,等等. 然后,把收集到的信息用web的方式展示出来. 可以把In ...

  7. 【转载】 Java 7之基础 - 强引用、弱引用、软引用、虚引用

    原文地址:http://blog.csdn.net/mazhimazh/article/details/19752475 1.强引用(StrongReference) 强引用是使用最普遍的引用.如果一 ...

  8. 反人类的java

  9. C++输入输出流格式控制

    来源:http://blog.csdn.net/virtualdesk/article/details/5355793 1.使用控制符控制输出格式 控制符 作用 dec 设置整数的基数为10 hex ...

  10. ubuntu12.04+Elasticsearch2.3.3伪分布式配置,集群状态分片调整

    目录 [TOC] 1.什么是Elashticsearch 1.1 Elashticsearch介绍 Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎.能够快速搜索数 ...