vc6.0运用mysql数据库中的编码所导致的乱码问题(接收和输出的编码必须要一致)
【编译中遇见的问题】
①在用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数据库中的编码所导致的乱码问题(接收和输出的编码必须要一致)的更多相关文章
- vc6.0连接mysql数据库
一.MySQL的安装 Mysql的安装去官网下载就可以...最新的是5.7版本.. 二.VC6.0的设置 (1)打开VC6.中选0 工具栏Tools菜单下的Options选项,在Directories ...
- mybatis查询mysql 数据库中 BLOB字段,结果出现乱码
起因 mybatis-plus 通过Mapper 查询数据,映射出来的BLOB字段中的yml数据中文是乱码的 --- DefaultValue: '' Formula: '' HintContent: ...
- 用JDBC把Excel中的数据导入到Mysql数据库中
步骤:0.在Mysql数据库中先建好table 1.从Excel表格读数据 2.用JDBC连接Mysql数据库 3.把读出的数据导入到Mysql数据库的相应表中 其中,步骤0的table我是先在Mys ...
- html页面通过http访问mysql数据库中的内容,实现用户登录的功能
需求: 通过html编写用户登录页面,页面内容包括用户名.密码和登录按钮,点击登录后访问login.php文件,使用按钮默认的submit提交用户名和密码,在login.php中访问mysql数据库, ...
- node 爬虫 --- 将爬取到的数据,保存到 mysql 数据库中
步骤一:安装必要模块 (1)cheerio模块 ,一个类似jQuery的选择器模块,分析HTML利器. (2)request模块,让http请求变的更加简单 (3)mysql模块,node连接mysq ...
- MySQL数据库中delimiter的作用概述
以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 其实就是告 ...
- PHP往mysql数据库中写入中文失败
该类问题解决办法就是 在建立数据库连接之后,将该连接的编码方式改为中文. 代码如下: $linkID=@mysql_connect("localhost","root&q ...
- 从SQLSERVER/MYSQL数据库中随机取一条或者N条记录
从SQLSERVER/MYSQL数据库中随机取一条或者N条记录 很多人都知道使用rand()函数但是怎麽使用可能不是每个人都知道 建立测试表 USE [sss] GO ,NAME ) DEFAULT ...
- 在mysql数据库中制作千万级测试表
在mysql数据库中制作千万级测试表 前言: 最近准备深入的学一下mysql,包括各种引擎的特性.性能优化.分表分库等.为了方便测试性能.分表等工作,就需要先建立一张比较大的数据表.我这里准备先建一张 ...
随机推荐
- 【 D3.js 入门系列 --- 6 】 如何让图表动起来
[5.1]节中制作了一个比较完善的图表,但它是静态的,想做出它的动态效果吗?在D3中只需要短短的几行代码即可. 这一节将涉及4个函数的使用. 1.transition() 启动转变效果只需要添加这个即 ...
- iphone 浏览器自动解析数字为号码解决方法
iphone 浏览器自动解析数字为号码解决方法 www.MyException.Cn 网友分享于:2015-10-09 浏览:0次 iphone 浏览器自动解析数字为号码解决办法 在工作中遇到 ...
- asdddddddddddddddd
<a href="www.baidu.com">sad</a>
- Tomcat口令猜解工具【Python脚本】
Tomcat 服务器网页部署,登录需用户名/密码,编写了一个简单的Python脚本来测试一些简单的弱口令. 测试环境:Tomcat版本 7.0 登录界面采用basic认证,Base 64加密一下,模拟 ...
- [转]iOS代码块Block
代码块Block是苹果在iOS4开始引入的对C语言的扩展,用来实现匿名函数的特性,Block是一种特殊的数据类型,其可以正常定义变量.作为参数.作为返回值,特殊地,Block还可以保存一段代码,在需要 ...
- 在 AndroidStudio 中添加和使用 Support Library
添加Support Library 项目需要用到Support包时如何添加?其实非常简单. 第一步 打开SDK Manager 确认安装了最新的Support Library 和 Support Re ...
- javascript中call函数与apply
javascript中的call方法使当前对象可以调用另一个对象的方法,即改变this的指向内容 var first_object = { num: 42 }; var second_object = ...
- EnglishLeaning
今天看了些hadoop官方reference感觉自己词汇量和语法真是又回到解放前了.于是,痛下决心要好好学习英语.找到了一些学习的方法,自己记录下来,也和大家一起借鉴 努力目标: 掌握大量的计算机英语 ...
- Django中Form的Textarea字段
开始以为是这个样子: class BlogForm(forms.Form): title = forms.CharField(required = True) content = forms. ...
- createjs 入门之EaselJs 绘制图片Bitmap
var canvas=document.getElementById('demoCanvas'); canvas.width=window.innerWidth; canvas.height=wind ...