六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 132|回复: 0

NSString 与 wchar_t*之间转化

[复制链接]

升级  76%

10

主题

10

主题

10

主题

童生

Rank: 1

积分
38
 楼主| 发表于 2012-12-19 22:19:15 | 显示全部楼层 |阅读模式
<div class="postcontent"><div id="cnblogs_post_body">+(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 = [[[NSStringalloc] initWithBytes:stTmp length:strlen(stTmp) encoding:NSUTF8StringEncoding] autorelease];
    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;
}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表