当前位置: 首页 > news >正文

阅读分享网站模板怎样免费建立自己的网站

阅读分享网站模板,怎样免费建立自己的网站,新闻源,wordpress 注册会员默认权限在VC中通过sqlite3.dll接口对sqlite数据库进行操作,包括打开数据库,插入,查询数据库等,如果操作接口输入参数包含中文字符,会导致操作异常。例如调用sqlite3_open打开数据库文件,如果文件路径出现中文&…

在VC++中通过sqlite3.dll接口对sqlite数据库进行操作,包括打开数据库,插入,查询数据库等,如果操作接口输入参数包含中文字符,会导致操作异常。例如调用sqlite3_open打开数据库文件,如果文件路径出现中文,就会导致打开失败。sqlite3_exec执行sql语句,如果包含中文对应字符就会变成乱码。这是由于sqlite数据库使用的是UTF-8编码方式,而传入的字符串是ASCII编码或Unicode编码,导致字符串格式错误。解决方案是在调用sqlite接口之前,先将字符串转换成UTF-8编码,以下提供各种字符串编码转换函数。

//UTF-8转Unicode

std::wstring Utf82Unicode(const std::string& utf8string)

{

int widesize = ::MultiByteToWideChar(CP_UTF8,utf8string.c_str(),-1,NULL,0);

if (widesize == ERROR_NO_UNICODE_TRANSLATION)

{

throw std::exception("Invalid UTF-8 sequence.");

}

if (widesize == 0)

{

throw std::exception("Error in conversion.");

}

std::vector resultstring(widesize);

int convresult = ::MultiByteToWideChar(CP_UTF8,&resultstring[0],widesize);

if (convresult != widesize)

{

throw std::exception("La falla!");

}

return std::wstring(&resultstring[0]);

}

//unicode 转为 ascii

string WideByte2Acsi(wstring& wstrcode)

{

int asciisize = ::WideCharToMultiByte(CP_OEMCP,wstrcode.c_str(),NULL);

if (asciisize == ERROR_NO_UNICODE_TRANSLATION)

{

throw std::exception("Invalid UTF-8 sequence.");

}

if (asciisize == 0)

{

throw std::exception("Error in conversion.");

}

std::vector resultstring(asciisize);

int convresult =::WideCharToMultiByte(CP_OEMCP,asciisize,NULL);

if (convresult != asciisize)

{

throw std::exception("La falla!");

}

return std::string(&resultstring[0]);

}

//utf-8 转 ascii

string UTF_82ASCII(string& strUtf8Code)

{

string strRet("");

//先把 utf8 转为 unicode

wstring wstr = Utf82Unicode(strUtf8Code);

//最后把 unicode 转为 ascii

strRet = WideByte2Acsi(wstr);

return strRet;

}

///

//ascii 转 Unicode

wstring Acsi2WideByte(string& strascii)

{

int widesize = MultiByteToWideChar (CP_ACP,(char*)strascii.c_str(),0);

if (widesize == ERROR_NO_UNICODE_TRANSLATION)

{

throw std::exception("Invalid UTF-8 sequence.");

}

if (widesize == 0)

{

throw std::exception("Error in conversion.");

}

std::vector resultstring(widesize);

int convresult = MultiByteToWideChar (CP_ACP,widesize);

if (convresult != widesize)

{

throw std::exception("La falla!");

}

return std::wstring(&resultstring[0]);

}

//Unicode 转 Utf8

std::string Unicode2Utf8(const std::wstring& widestring)

{

int utf8size = ::WideCharToMultiByte(CP_UTF8,widestring.c_str(),NULL);

if (utf8size == 0)

{

throw std::exception("Error in conversion.");

}

std::vector resultstring(utf8size);

int convresult = ::WideCharToMultiByte(CP_UTF8,utf8size,NULL);

if (convresult != utf8size)

{

throw std::exception("La falla!");

}

return std::string(&resultstring[0]);

}

//ascii 转 Utf8

string ASCII2UTF_8(string& strAsciiCode)

{

string strRet("");

//先把 ascii 转为 unicode

wstring wstr = Acsi2WideByte(strAsciiCode);

//最后把 unicode 转为 utf8

strRet = Unicode2Utf8(wstr);

return strRet; }

http://www.lbrq.cn/news/2640691.html

相关文章:

  • 信阳做网站汉狮网络石家庄做网站推广排名的公司
  • 合肥网站建设设计枸橼酸西地那非片是什么
  • 淘宝联盟网站建设源码谷歌seo推广
  • 做网站收费 优帮云合肥网站建设优化
  • 网站建设进度公司搭建网站
  • 运营网站费用企业培训心得
  • 建设银行网站怎么短信转账软文发布软件
  • 兰州做网站哪家专业好用的搜索引擎
  • 网站建设商家宁波seo费用
  • 土木毕业设计代做网站优化营商环境发言材料
  • dede网站主页打不开网站服务器失去响应
  • 足球梦网站建设的基本思路东莞seo推广机构帖子
  • 什么可以用手机做网站上海seo顾问推推蛙
  • 互联网保险的典型案例电商seo是什么意思
  • html网站建设实例教程企业网站托管
  • 柳州在哪里做网站潍坊网站建设优化
  • 长春做网站哪家公司好网络营销技巧
  • 天猫做网站广州宣布5条优化措施
  • 做网站的私活排名怎么优化快
  • 武汉政府网站建设企业网站的推广方式和手段有哪些
  • 本地南京网站建设小红书seo排名帝搜软件
  • 广东网站建设公司报价昆明网络推广公司排名
  • 有限责任公司和股份有限公司成都百度推广和seo优化
  • 易企秀可以做网站吗杭州网站优化咨询
  • 酒仙网的网站推广方式免费b站推广入口2023
  • 营销网站建站公司站内关键词排名优化软件
  • 天水网站制作网络营销课程报告
  • 苏州手机网站建设东莞疫情最新通告
  • 怎么做网站链接的快捷方式百度号码认证平台官网首页
  • 广州市城乡建设委员会网站苏州疫情最新消息
  • 机器学习及其KNN算法
  • C/C++与JavaScript的WebAssembly协作开发指南
  • 【代码随想录day 15】 力扣 110.平衡二叉树
  • VRTE 的应用程序部署到Ubuntu上 报错:bash: ./rb_exmd: No such file or directory
  • 什么是ros功能包和ros节点
  • Webpack 5 高性能配置方案