文鬼 发表于 2012-12-19 22:19:13

NSString 与 wchar_t*之间转化

<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 = [[ initWithBytes:stTmp length:strlen(stTmp) encoding:NSUTF8StringEncoding] autorelease];
    free(stTmp);
    return ret;
}

- (std::wstring) getWCharFromString
{

    const char*cString;
    cString = ;
    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 = 0;
      printf("begin %ls",stTmp);
    std::wstring wstr(stTmp);
    free(stTmp);
    return wstr;
}
页: [1]
查看完整版本: NSString 与 wchar_t*之间转化