如何实现cocos2d-x开发中wstring和string的转换
更新:HHH   时间:2023-1-7


本篇文章给大家分享的是有关 如何实现cocos2d-x开发中wstring和string的转换 ,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

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

wstring转换为string代码如下:

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());

以上就是 如何实现cocos2d-x开发中wstring和string的转换 ,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注天达云行业资讯频道。

返回游戏开发教程...