您的位置:首页 > 数据库

sqlite3问题2:中文路径的支持

2012-02-09 19:18 337 查看
在工程中加sqlite3源代码,调用第一个函数sqlite3_open,发现其不支持中文路径。

经过检索发现该函数要求输入的文件名为utf8编码。

//再sqlite3.c中 winFullPathname、sqlite3_win32_mbcs_to_utf8、mbcsToUnicode、unicodeToUtf8与此事相关。

//参考以上4个函数,做的一个编码转换函数

CString CMyApp::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;

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