std::wstring StringToWString(const std::string &str)
{
std::wstring wstr(str.length(),L' ');
std::copy(str.begin(), str.end(), wstr.begin());
return wstr;
}

//只拷贝低字节至string中
std::string WStringToString(const std::wstring &wstr)
{
std::string str(wstr.length(), ' ');
std::copy(wstr.begin(), wstr.end(), str.begin());
return str;
}

上面的对于英文字符串 是正确的,对于中文是错误的,下面的代码则适用于中英文!

std::string AVentilationGraph::wstring2string(const std::wstring &wstr)
{
std::string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C";
setlocale(LC_ALL, "chs");
const wchar_t* _Source = wstr.c_str();
size_t _Dsize = * wstr.size() + ;
char *_Dest = new char[_Dsize];
memset(_Dest, , _Dsize);
wcstombs(_Dest, _Source, _Dsize);
std::string result = _Dest;
delete[]_Dest;
setlocale(LC_ALL, curLocale.c_str());
return result;
} //wstring 转 string
std::wstring AVentilationGraph::string2wstring(const std::string &str)
{
setlocale(LC_ALL, "chs");
const char* _Source = str.c_str();
size_t _Dsize = str.size() + ;
wchar_t *_Dest = new wchar_t[_Dsize];
wmemset(_Dest, , _Dsize);
mbstowcs(_Dest, _Source, _Dsize);
std::wstring result = _Dest;
delete[]_Dest;
setlocale(LC_ALL, "C");
return result;
}

最新文章

  1. 《转载》Java异常处理的10个最佳实践
  2. 转-springAOP基于XML配置文件方式
  3. CART(分类回归树)
  4. String之-如何取得精确byte长度字符串
  5. 【分享】4款WiFi广告营销利器推荐
  6. Mysql中的count()与sum()区别
  7. [原创]使用benchmarksql和pgbench对PostgreSQL Plus Advanced Server进行性能测试
  8. MySQL免安装版配置
  9. [LeetCode] 148. Sort List 解题思路
  10. House Robber 分类: leetcode 算法 2015-07-09 20:53 2人阅读 评论(0) 收藏
  11. 【.NET】Repeater控件简单的数据绑定(有bool,日期,序号)
  12. Linux之特殊权限(SUID/SGID/SBIT)
  13. [补] windows C socket编程——大物实验预约
  14. JavaScript 随机数相关算法
  15. (四十五)Modal 模态窗口 -遮盖
  16. CSS引用样式
  17. linux systemctl 常用用法简介
  18. delegate 和 event
  19. Win10默认浏览器怎么设置
  20. iOS Font

热门文章

  1. 九、oracle 事务
  2. 将当天时间转换为unix时间戳
  3. iosiOSlabel基本使用以及文字自适应
  4. hdu_5695_Gym Class(拓扑排序)
  5. jsoup抓取数据
  6. js中冒泡事件
  7. wl18xx module crash with "wlcore: ERROR ELP wakeup timeout!"
  8. overlay
  9. ios 贝塞尔画图
  10. Java 中的四种引用及垃圾回收策略