C++ 、objc 字符串编码转换

最近碰到字符串编码转换的问题,简单记录下

Ascii 转unicode

std::wstring AsciiToWide(std::string _strSrc)
{
    NSString *_nsstr = [NSString stringWithCString:_strSrc.c_str() encoding:NSASCIIStringEncoding];
    NSString *urlStringUTF8 = [_nsstr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    const char* _cdata = [urlStringUTF8 cStringUsingEncoding:NSUnicodeStringEncoding];
    std::wstring _wstr((wchar_t*)_cdata);
    return _wstr;
}

unicode 转 Ascii

std::string  WideToAscii(std::wstring _strSrc)
{
    wchar_t* _csrc = const_cast<wchar_t*>(_strSrc.c_str());
    NSString *_nsstr = [NSString stringWithCString:(char*)_csrc encoding:NSUnicodeStringEncoding];
    NSString *urlStringUTF8 = [_nsstr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    const char* _cdata = [urlStringUTF8 cStringUsingEncoding:NSASCIIStringEncoding];
    std::string _str(_cdata);
    return _str;
}

utf8 转 Ascii

std::string  UTF8ToAscii(std::string _strSrc)
{
    NSString *_nsstr = [NSString stringWithCString:_strSrc.c_str() encoding:NSUTF8StringEncoding];
    NSString *urlStringUTF8 = [_nsstr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    const char* _cdata = [urlStringUTF8 cStringUsingEncoding:NSUTF8StringEncoding];
    std::string _str(_cdata);
    return _str;
}

Ascii 转 utf8

std::string  AsciiToUTF8(std::string _strSrc)
{
    NSString *_nsstr = [NSString stringWithCString:_strSrc.c_str() encoding:NSASCIIStringEncoding];
    NSString *urlStringUTF8 = [_nsstr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    const char* _cdata = [urlStringUTF8 cStringUsingEncoding:NSUTF8StringEncoding];
    std::string _str(_cdata);
    return _str;
}

深圳利程电子有限公司

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 字符是用户可以读写的最小单位。计算机所能支持的字符组成的集合,就叫做字符集。字符集通常以二维表的形式存在。二维表的...
    刘惜有阅读 8,211评论 2 14
  • 字符集和编码简介 在编程中常常可以见到各种字符集和编码,包括ASCII,MBCS,Unicode等字符集。确切的说...
    兰山小亭阅读 8,653评论 0 13
  • UTF-8 编码提供了一种简便而向后兼容的方法, 使得那种完全围绕 ASCII 设计的操作系统, 比如 Unix,...
    谢大见阅读 4,827评论 0 3
  • ​ 最近碰到字符串编码转换的问题,简单记录下 utf8 转 unicode unicode 转 utf8 ut...
    _smoking_阅读 4,578评论 0 1
  • 1.2017年3月27日自律帮100天结业,一直想写篇文章来记录一下这些天的收获和感悟,先来说说参加活动之前。参加...
    李乐婶阅读 2,729评论 0 4