#include <string>
std::string ws2s(const std::wstring& ws)
{
    std::string curLocale = setlocale(LC_ALL, NULL);        // curLocale = "C";
    setlocale(LC_ALL, "chs");
    const wchar_t* _Source = ws.c_str();
    size_t _Dsize = 2 * ws.size() + 1;
    char *_Dest = new char[_Dsize];
    memset(_Dest,0,_Dsize);
    wcstombs(_Dest,_Source,_Dsize);
    std::string result = _Dest;
    delete []_Dest;
    setlocale(LC_ALL, curLocale.c_str());
    return result;
}

std::wstring s2ws(const std::string& s)
{
    setlocale(LC_ALL, "chs"); 
    const char* _Source = s.c_str();
    size_t _Dsize = s.size() + 1;
    wchar_t *_Dest = new wchar_t[_Dsize];
    wmemset(_Dest, 0, _Dsize);
    mbstowcs(_Dest,_Source,_Dsize);
    std::wstring result = _Dest;
    delete []_Dest;
    setlocale(LC_ALL, "C");
    return result;
}

最新文章

  1. Python学习笔记——迭代器(RandSeq和AnyIter)
  2. salesforce 零基础学习(二十一)workflow Q&amp;A
  3. Android ImageView的scaleType属性与adjustViewBounds属性
  4. Linux2.6 内核的 Initrd 机制解析(转)
  5. 【转】从viewController讲到强制横屏,附IOS5强制横屏的有效办法
  6. Android -- 自定义View小Demo(一)
  7. qt 3 获取文件路径中的一部分
  8. Debug过程中的mock (及display窗口的使用)
  9. 解决Eclipse中编辑xml文件的智能提示问题,最简单的是第二种方法。
  10. java 中的重载与重写 抽象类与接口的区别
  11. Spring Boot Maven Plugin(一):repackage目标
  12. HashMap和Hashtable的异同点
  13. 关于CKEditor 4.0 过滤html标签
  14. Android学好Shape不再依赖美工
  15. mysql sql执行慢 分析过程
  16. springboot启动插件
  17. docker(三)容器的基本操作
  18. Vue的配置
  19. 关于Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案
  20. C++ chrono 库中的 steady_clock 和 system_clock

热门文章

  1. 分享录制的正则表达式入门、高阶以及使用 .NET 实现网络爬虫视频教程
  2. FPGA芯片内部硬件介绍
  3. 【Beta版本】七天冲刺——日志集合贴
  4. 【OpenJudge 1793】矩形覆盖
  5. 高级数组-ArrayList
  6. CSS实现正方体旋转
  7. tnt_esri.dat Arcgis8.1安装license
  8. 转-ArcGIS Engine许可初始化
  9. Mac 效率工具
  10. redis教程(整理中)