sqlite3问题2:中文路径的支持
来源:互联网 发布:ubuntu命令行删除文件 编辑:程序博客网 时间:2024/05/18 03:28
在工程中加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;
}
经过检索发现该函数要求输入的文件名为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;
}
- sqlite3问题2:中文路径的支持
- 使用SQLite3支持中文路径
- mplayer 中文路径支持问题
- java连接sqlite3,解决sqlite中文路径问题
- sqlite数据库支持中文路径问题
- sqlite数据库支持中文路径问题
- MFC下支持中文的SQLite3封装类使用
- Sqlite3 中文乱码问题
- SQLite3支持的数据类型
- Sqlite3支持的数据类型
- sqlite3支持的数据类型
- sqlite3支持的数据类型
- sqlite3支持的文件类型
- VS2005的fstream对于中文路径支持
- J2ME中文的支持问题
- BCGControlBar支持中文的问题
- BCGControlBar支持中文的问题
- mysql支持中文的问题
- Java jar
- Windows完成端口编程
- recv函数接收数据问题(诡异)--调试正确,全速出错
- Windows启动过程
- Oracle 碎片 优化 一例
- sqlite3问题2:中文路径的支持
- EXT2.0 简明教程(二)
- EXT2.0 简明教程(一)
- EXT2.0 简明教程(三)
- EXT2.0 简明教程(四)
- EXT2.0 简明教程(五)
- EXT2.0 简明教程(六)
- EXT2.0 简明教程(七)
- Android Application Task Activities的关系