先开始的思路是,先把NSString转化为char*,再转化为wchar_t
-(wchar_t*) stringToWchar(NSString*) str
{
setlocale(LC_CTYPE,"UTF-8");
int length = str.length;
const char* srcStr = [str UTF8String];
wchar_t *wStr = new wchar_t[(1+lenght)*sizeof(wchar_t)];
memset(wStr,0,length);
mbstowcs(wStr,srcStr,length);
return wStr;
}
英文没问题,但是中文转化后的wStr依旧为乱码。
用了其它方法,nssting中是否有其它方式直接转为wchar_t呢,如下:
-(wchar_t*) stringToWchar(NSString*) str
{
return (wchar_t*)[str cStringUsingEncoding:NSUTF32StringEncoding];
}
中文转换后成功。