1
将下载的mysql-5.6.24-win32.1432006610.zip解压到C:\Program Files(x86)\MySQL路径中(因为下载的是mysql32位版),当然你也可以选择解压到其他盘符。
2
接下来配置环境变量,如没有配置会提示:发生系统错误 2,未找到指定文件!
方法如下:
打开我的电脑—属性—高级系统设置—环境变量—选择Path,点编辑。在其后面添加你的mysql bin文件夹的路径 (C:\Program Files (x86)\MySQL\bin)
注意是在后面添加,以英文 隔开,切记不要覆盖原有路径!
3
修改配置文件:在你解压的mysql文件夹里有一个 my-default.ini 文件,打开如图:修改图中红色圈的内容,
basedir = C:\Program Files (x86)\MySQL(MySQL所在目录)
datadir = C:\Program Files (x86)\MySQL\data(MySQL中data所在目录)
注:前面的 #去掉。如图
4
以管理员身份运行CMD,输入:cd C:\Program Files (x86)\MySQL \bin如图:
输入:mysqld -install,接着会提示安装成功,进行下一步,启动MySQL服务:net start mysql,提示:MySQL服务正在启动
MySQL服务启动成功。如图,(由于我是已经配置好的,所以会提示:The service already exists!)
注:以上命令符 *** 作必须进入到bin目录下进行,否则提示系统出错!
5
到此所有配置已经完成,进入登录。接着以上 *** 作输入:mysql -u root -p。(连接数据库服务器的命令:-u 是mysql数据库用户名,默认为root,-p密码),初次登录没有密码按ENTER键跳过,进入如图界面,登录成功!
这是因为UTF8编码格式的问题,你需要进行字符转换。首先用MultiByteToWideChar(CP_UTF8,0,lpszBuffer,-1,(LPWSTR)pUnicode,size)把UTF8转成宽字节文字,
然后用WideCharToMultiByte(936,0,(LPWSTR)pUnicode,-1,lpszContext,size,NULL,NULL)转换成CP936编码的中文汉字。
只能帮你找个思路,具体的函数调用细节我也不计啦,自己查win32api的手册吧。可以参考下面的例子。
VC6.0 UCS2(unicode) 与 GBK(gb2312) UTF(utf-8)格式互转
#include <string>
#include <stdio.h>
#include "windows.h"
// 把UTF-8转换成Unicode
void UTF_8ToUnicode(WCHAR* pOut,char *pText)
{
char* uchar = (char *)pOut
uchar[1] = ((pText[0] &0x0F) <<4) + ((pText[1] >>2) &0x0F)
uchar[0] = ((pText[1] &0x03) <<6) + (pText[2] &0x3F)
return
}
// Unicode 转换成UTF-8
void UnicodeToUTF_8(char* pOut,WCHAR* pText)
{
// 注意 WCHAR高低字的顺序,低字节在前,高字节在后
char* pchar = (char *)pText
pOut[0] = (0xE0 | ((pchar[1] &0xF0) >>4))
pOut[1] = (0x80 | ((pchar[1] &0x0F) <<2)) + ((pchar[0] &0xC0) >>6)
pOut[2] = (0x80 | (pchar[0] &0x3F))
return
}
// 把Unicode 转换成 GB2312
void UnicodeToGB2312(char* pOut,unsigned short uData)
{
WideCharToMultiByte(CP_ACP,NULL,&uData,1,pOut,sizeof(WCHAR),NULL,NULL)
return
}
// GB2312 转换成 Unicode
void Gb2312ToUnicode(WCHAR* pOut,char *gbBuffer)
{
::MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,gbBuffer,2,pOut,1)
return
}
//GB2312 转为 UTF-8
void GB2312ToUTF_8(CString&pOut,char *pText, int pLen)
{
char buf[1024]
char* rst = new char[pLen + (pLen >>2) + 2]
memset(buf,0,1024)
memset(rst,0,pLen + (pLen >>2) + 2)
int i = 0
int j = 0
while(i <pLen)
{
//如果是英文直接复制就可以
if( *(pText + i) >= 0)
{
rst[j++] = pText[i++]
}
else
{
WCHAR pbuffer
Gb2312ToUnicode(&pbuffer,pText+i)
UnicodeToUTF_8(buf,&pbuffer)
unsigned short int tmp = 0
tmp = rst[j] = buf[0]
tmp = rst[j+1] = buf[1]
tmp = rst[j+2] = buf[2]
j += 3
i += 2
}
}
strcpy(&rst[j],"\0")
//返回结果
pOut = rst
delete []rst
return
}
//UTF-8 转为 GB2312
void UTF_8ToGB2312(CString &pOut, char *pText, int pLen)
{
char * newBuf = new char[pLen]
char Ctemp[4]
memset(Ctemp,0,4)
int i =0
int j = 0
while(i <pLen)
{
if(pText[i] >0)
{
newBuf[j++] = pText[i++]
}
else
{
WCHAR Wtemp
UTF_8ToUnicode(&Wtemp,pText + i)
UnicodeToGB2312(Ctemp,Wtemp)
newBuf[j] = Ctemp[0]
newBuf[j + 1] = Ctemp[1]
i += 3
j += 2
}
}
strcpy(&newBuf[j],"\0")
pOut = newBuf
delete []newBuf
return
}
CString UTF8_Encode(LPTSTR strUnicode)
{
long TLen
CString UTF8_EncodeLong
TLen = CString(strUnicode).GetLength()
if(TLen == 0)
{
return CString(strUnicode)
}
long lngBufferSize
long lngResult
//Set buffer for longest possible string.
lngBufferSize = TLen * 3 + 1
char *bytUtf8 = new char[lngBufferSize]
//Translate using code page 65001(UTF-8).
lngResult = WideCharToMultiByte(CP_UTF8, 0, (unsigned short*)strUnicode, TLen, bytUtf8, lngBufferSize, NULL, 0)
bytUtf8[lngResult] = NULL
return CString(bytUtf8)
}
/*************************************************************************/
CString URLEncode(CString sIn)
{
CString sOut
const int nLen = sIn.GetLength() + 1
register LPBYTE pOutTmp = NULL
LPBYTE pOutBuf = NULL
register LPBYTE pInTmp = NULL
LPBYTE pInBuf =(LPBYTE)sIn.GetBuffer(nLen)
BYTE b = 0
//alloc out buffer
pOutBuf = (LPBYTE)sOut.GetBuffer(nLen*3 - 2)//new BYTE [nLen * 3]
if(pOutBuf)
{
pInTmp = pInBuf
pOutTmp = pOutBuf
// do encoding
while (*pInTmp)
{
if(isalnum(*pInTmp))
*pOutTmp++ = *pInTmp
else
if(isspace(*pInTmp))
*pOutTmp++ = '+'
else
// if(*pInTmp<=127)
// *pOutTmp++ = *pInTmp
// else
{
*pOutTmp++ = '%'
*pOutTmp++ = toHex(*pInTmp>>4)
*pOutTmp++ = toHex(*pInTmp%16)
}
pInTmp++
}
*pOutTmp = '\0'
//sOut=pOutBuf
//delete [] pOutBuf
sOut.ReleaseBuffer()
}
sIn.ReleaseBuffer()
return sOut
}
使用///////////////////////////////////
CString memname=“汉字"
GB2312ToUTF_8(memname,mem_name,TCBUFSIZE)
URLEncode(memname)便是所要的结果"“%E6%B1%89%E5%AD%97"了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)