cocos2d-x开发中wstring和string的转换

简介:

cocos2d-x开发中汉字操作技术是必须要面对的,其中可能要用到wstring和string的相互转换。我在网络上搜索到的能够应用于android
和WIN32(其他的平台没有试)环境下的汉字的可选方案是使用如下两个函数:

wstring转换为string代码如下:

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
28
29
30
31
32
33
std::string ws2s( const  std::wstring& ws)
{
   string curLocale = setlocale(LC_ALL, NULL);
   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;
}
 
string转换为wstring:
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;
}
or
 
string a =  "xxxx" ;
wstring b(a.begin(), a.end());




















本文转自朱先忠老师51CTO博客,原文链接:http://blog.51cto.com/zhuxianzhong/1531768  ,如需转载请自行联系原作者

相关文章
|
4月前
4. 解决uni-app开发过程中view、image等标签出现诸如“出现错误:类型“{ class: string; }”的参数不能赋给类型“.......”
4. 解决uni-app开发过程中view、image等标签出现诸如“出现错误:类型“{ class: string; }”的参数不能赋给类型“.......”
381 0
|
6月前
|
SQL JavaScript
js开发:请解释什么是ES6的模板字符串(template string),并给出一个示例。
ES6的模板字符串以反引号包围,支持变量和表达式插入以及多行书写。例如,插入变量值`Hello, ${name}!`,计算表达式`${num1 + num2}`,以及创建多行字符串。模板字符串保留原始空格和缩进,简化了字符串拼接,提高了代码可读性。
55 6
|
6月前
|
Java 索引
Java String应用与开发
Java String应用与开发
74 0
10 个 Python String 字符串的常用技巧,大大地提升我们的开发效率,终于有时间陪女朋友了
10 个 Python String 字符串的常用技巧,大大地提升我们的开发效率,终于有时间陪女朋友了
|
缓存 NoSQL Java
【Java原理探索】带你攻克String类创建的难点分析 | Java开发实战
【Java原理探索】带你攻克String类创建的难点分析 | Java开发实战
129 0
【Java原理探索】带你攻克String类创建的难点分析 | Java开发实战
|
存储 缓存 安全
【Java原理探索】带你探究String类不可变的特性 | Java开发实战
【Java原理探索】带你探究String类不可变的特性 | Java开发实战
202 1
【Java原理探索】带你探究String类不可变的特性 | Java开发实战
|
存储 安全 Java
Java开发——16.常用类(Scanner、Object、String、StringBuffer、StringBuilder)
Scanner:一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。
Java开发——16.常用类(Scanner、Object、String、StringBuffer、StringBuilder)
|
存储 算法 安全
【Java原理探索】带你实战使用String的功能特性 | Java开发实战
【Java原理探索】带你实战使用String的功能特性 | Java开发实战
131 0
【Java原理探索】带你实战使用String的功能特性 | Java开发实战
Java基础String,int,Integer类型的互相转换
Java基础String,int,Integer类型的互相转换
Java基础String,int,Integer类型的互相转换
wstring和string的转化
wstring和string的转化
104 0