微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlite数据库支持中文路径问题

char *unicodetoUtf8(const WCHAR *zWideFilename){
int nByte;
char *zFilename;

nByte = WideCharToMultiByte(CP_UTF8,zWideFilename,-1,0);
zFilename = (char*)malloc( nByte );
if( zFilename==0 ){
return 0;
}
nByte = WideCharToMultiByte(CP_UTF8,zFilename,nByte,
0,0);
if( nByte == 0 ){
free(zFilename);
zFilename = 0;
}
return zFilename;
}

WCHAR *mbcsToUnicode(const char *zFilename){
int nByte;
WCHAR *zMbcsFilename;
int codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP;

nByte = MultiBytetoWideChar(codepage,NULL,0)*sizeof(WCHAR);
zMbcsFilename = (WCHAR*)malloc( nByte*sizeof(zMbcsFilename[0]) );
if( zMbcsFilename==0 ){
return 0;
}
nByte = MultiBytetoWideChar(codepage,zMbcsFilename,nByte);
if( nByte==0 ){
free(zMbcsFilename);
zMbcsFilename = 0;
}
return zMbcsFilename;
}

char szPath[256] = "D://Project//Test//wwtest//DBTest//DBTest//我的数据库//pic.db"; char *pPath; WCHAR *wcPath; wcPath = mbcsToUnicode(szPath); pPath = unicodetoUtf8(wcPath); sqlite3_open(pPath,&db);

原文地址:https://www.jb51.cc/sqlite/202295.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐