首先,需要提的一句是mac下unsigned short占两个字节,wchar_t占四个字节,在windows下是两个。
这里,用到mac下的NSString会方便很多
wchar_t *ws = new wchar_t[2];
此处给wchar_t赋值
//将ws的值赋给NSString
NSString *str = [[NSString alloc] initWithBytes:ws length:wcslen(ws)*4 encoding:NSUTF32LittleEndianStringEncoding];
//将NSString转为string类型
std::string myStr = [str cStringUsingEncoding:NSUTF8StringEncoding];
这样获取的myStr就是wchar_t转的值,网上说的方法都是基于windows平台下的,mac下不好用。