您的位置:首页 > 数据库 > SQL

sqlite3_open打开数据库失败 返回值14问题

2012-12-19 16:20 597 查看
原因:sqlite3_open第一个参数路径中有中文字符,而它只支持UTF-8编码,所以使数据库打开失败

解决:我在网上找的转码,先把路径转码。

CString MbcsToUtf8(const char *file)

{

CString str;

WCHAR *pwchar=0;

CHAR *pchar=0;

int len=0;

int codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP;

len=MultiByteToWideChar(codepage, 0, file, -1, NULL,0);

pwchar=new WCHAR[len];

if(pwchar!=0)

{

len = MultiByteToWideChar(codepage, 0, file, -1, pwchar, len);

if( len!=0 )

{

len = WideCharToMultiByte(CP_UTF8, 0, pwchar, -1, 0, 0, 0, 0);

pchar=new CHAR[len];

if(pchar!=0)

{

len = WideCharToMultiByte(CP_UTF8, 0, pwchar, -1, pchar, len,0, 0);

if(len!=0)

{

str=pchar;

}

delete pchar;

}

delete pwchar;

}

}

return str;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: