C++ string和wstring互转实现
[转载] http://www.cppblog.com/kenwell/archive/2008/05/21/50661.html 很好,很强大,用到就是赚到!
代码如下:
1 #include <string> 2 std::string ws2s(const std::wstring& ws) 3 { 4 std::string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C"; 5 setlocale(LC_ALL, "chs"); 6 const wchar_t* _Source = ws.c_str(); 7 size_t _Dsize = 2 * ws.size() + 1; 8 char *_Dest = new char[_Dsize]; 9 memset(_Dest,0,_Dsize); 10 wcstombs(_Dest,_Source,_Dsize); 11 std::string result = _Dest; 12 delete []_Dest; 13 setlocale(LC_ALL, curLocale.c_str()); 14 return result; 15 } 16 17 std::wstring s2ws(const std::string& s) 18 { 19 setlocale(LC_ALL, "chs"); 20 const char* _Source = s.c_str(); 21 size_t _Dsize = s.size() + 1; 22 wchar_t *_Dest = new wchar_t[_Dsize]; 23 wmemset(_Dest, 0, _Dsize); 24 mbstowcs(_Dest,_Source,_Dsize); 25 std::wstring result = _Dest; 26 delete []_Dest; 27 setlocale(LC_ALL, "C"); 28 return result; 29 }
转载于:https://www.cnblogs.com/MakeView660/p/6046622.html
C++ string和wstring互转实现相关推荐
- string与wstring互转
string与wstring互转 C++ Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2 ...
- C++string与wstring类型转换
在c++开发时有的库函数必须传递wstring宽字符串作为参数,在代码中通过L"wstring"定义宽字符串传递参数这没什么难度,问题是实际过程中需要接收输入string数据,这时 ...
- C++11:string和wstring之间互转换
今天打算做string到wstring转换时发现以前早已经写过,已经忘记从哪里找来的了,贴出代码,以防再忘记.C++11后UTF8编码转换还真是方便 #include <string> # ...
- wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString....转换
wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString.... #include <strin ...
- PInvoke复习之深入理解char*与wchar_t*与string以及wstring之间的相互转换
本篇文章是对c++中的char*与wchar_t*与string以及wstring之间的相互转换进行了详细的分析介绍,需要的朋友参考下 #ifndef USE_H_ #define USE_H_ #i ...
- wchar_t*,wchar_t,wchat_t数组,char,char*,char数组,std::string,std::wstring,CString 以及system(command)...
转载:http://blog.csdn.net/chocolateconanlan/article/details/4058868 wchar_t*,wchar_t,wchat_t数组,char,ch ...
- string、wstring、cstring、 char、 tchar、int转换方法
1.string转wstring ? 1 2 3 4 5 6 7 wstring s2ws(const string& s) { _bstr_t t = s.c_str(); wchar_ ...
- c++ string 与 char 互转 以及base64
c++ string 与 char 互转 很简单如下 char bts[5] = {'A','B','C','D','E'};printf("%s\n",bts);//char t ...
- Java获得时间 String与Timestamp互转
一.String与Date(java.util.Date)互转 1.1 String -> Date Java代码 String dateStr = "2010/05/0 ...
- jq js json 转字符串_JS中JSON对象和String之间的互转及处理技巧
json:JavaScript 对象表示法(javascript Object Notation),其实JSON就是一个javaScript的对象(Object)而已. 如有不清楚JSON,可以去w3 ...
最新文章
- 操作系统原理第十一章:大容量存储
- JAVA数据结构-稀疏数组
- arch Linux 添加引导,ArchLinux 添加开机启动脚本, 亲测
- 前端学习(2253)如何进行团队合作
- git分支建立删除,打tag
- --save-dev和--save的区别
- html 图片的缩略图,纯CSS制作缩略图片
- springboot基于web的游泳馆信息管理系统毕业设计源码281444
- Java敏感词过滤 工具类
- 计算机网络实验四协议分析心得,计算机网络原理实验_使用网络协议分析仪Wireshark...
- google 安装去广告插件
- java应届生面试收集总结
- matlab 坐标点标记符号表
- 使用jekyll写博客
- 用C语言编写5个学生,每个学生有3门课程成绩,从键盘输入学生数据(学号,姓名,3门成绩)计算平均成绩,将成绩放入磁盘文件stud中
- R语言:从 csv 文件中读取数据,然后将数据写入 csv 文件
- Mybatis学习 association关联 和 collection集合
- 哈尔滨工程大学考研经验分享(中):初试
- 使用python抓取5级行政区划
- 虚拟机异常关机,报错找不到vmdx文件,文件名增加flat的解决方法
热门文章
- escapexml java_fn:escapeXml()函数
- NameError: name “ ” is not defined
- java-程序流程控制
- 关于MySQL latch争用深入分析与判断
- WannaCry深度详细分析报告 转
- Matlab The Bisection Method
- 简单实现下载功能--jsp,servlet
- Swift基础语法: 21 - Swift的可变形形参, 常量形参, 变量形参, In-Out形参
- Android用户界面 UI组件--AdapterView及其子类(一) ListView及各种Adapter详解
- 【Oracle学习】archivelog