sqlite中文路径支持
来源:互联网 发布:如何查询手机淘宝余额 编辑:程序博客网 时间:2024/05/02 01:45
在工程中加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;
}
//在调用 sqlite_open 前将文件路径,通过MbcsToUtf8函数将编码转换到utf8即可支持中文路径。
转自:http://rectnote.blog.sohu.com/111114142.html
0 0
- sqlite中文路径支持
- sqlite数据库支持中文路径问题
- sqlite数据库支持中文路径问题
- Sqlite中文路径问题
- sqlite中文路径问题
- SQlite中文路径解决方案
- ogre中文路径支持
- Tomcat支持中文路径
- fstream支持中文路径
- qt5 中文路径 支持
- tomcat支持中文路径
- sqlite解决中文路径问题
- 让iis支持中文路径
- 让IIS支持中文路径
- mplayer 中文路径支持问题
- 使用SQLite3支持中文路径
- 让VS2005支持中文路径
- Sublime Text支持中文路径
- 管理音频播放[Lesson 1 - 控制app的音量]
- Struts2+Tiles2框架整合
- 潇雨菲听到俩人提起王爷
- 【Google Glass开发平台】谷歌眼镜开发工具包(GDK)快速...
- 【仿微盟源码】利用第三方微信营销托管平台快速增加粉丝,形成良好互动,打造精美微信APP。
- sqlite中文路径支持
- baidu卫兵新版力推三级加快器 电脑一键提速50%
- MIPI介绍
- WTL
- js向servlet传参IE乱码,chrome却正常传参
- C++ 将IP地址的各段数字取出来
- 为一个 iOS 应用编写一个简单的 Node.js/MongoDB Web 服务
- 装修卡,为什么是成都最大的装修网站
- JQuery读书笔记--JQuery-Form中的AjaxForm和AjaxSubmit的区别