NSString 与 wchar_t*之间转化

http://www.16kan.com/post/209221.html



+(NSString*)getStringFromWChar:(const wchar_t*) inStr

{

    setlocale(LC_CTYPE"UTF-8");

    int strLength = wcslen(inStr);

    int bufferSize = (strLength+1)*4;

    char *stTmp = (char*)malloc(bufferSize);

    memset(stTmp, 0, bufferSize);

    wcstombs(stTmp, inStr, strLength);

    NSString* ret = [[[NSStringallocinitWithBytes:stTmp length:strlen(stTmp)encoding:NSUTF8StringEncodingautorelease];

    free(stTmp);

    return ret;

}

 

- (std::wstring) getWCharFromString

{

 

    const char  *cString;

    cString = [selfcStringUsingEncoding:NSUTF8StringEncoding];

    setlocale(LC_CTYPE"UTF-8");

    int iLength = mbstowcs(NULL, cString, 0);

    int bufferSize = (iLength+1)*sizeof(wchar_t);

    wchar_t *stTmp = (wchar_t*)malloc(bufferSize);

    memset(stTmp, 0, bufferSize);

    mbstowcs(stTmp, cString, iLength);

    stTmp[iLength] = 0;

        printf("begin %ls",stTmp);

    std::wstring wstr(stTmp);

    free(stTmp);

    return wstr;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值