win10 mysql 怎么配置中文

win10 mysql 怎么配置中文,第1张

方法/步骤

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"了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7436816.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存