【发布时间】:2010-10-27 20:32:17
【问题描述】:
我似乎找不到将 NSString 转换为 wchar_t 的良好内置方法...关于如何执行此操作的任何提示? Apple 在 NSString 类上公开的任何内容都适用于 c-strings (char*) 或 unichars,但没有适用于 wchar*。
【问题讨论】:
标签: string macos cocoa nsstring
我似乎找不到将 NSString 转换为 wchar_t 的良好内置方法...关于如何执行此操作的任何提示? Apple 在 NSString 类上公开的任何内容都适用于 c-strings (char*) 或 unichars,但没有适用于 wchar*。
【问题讨论】:
标签: string macos cocoa nsstring
[urString cStringUsingEncoding:NSUTF16LittleEndianStringEncoding]
wchar_t 是特定于编译器的。假设你想要 Win32 wchar_t,那么 UTF16 小结尾编码就可以了。对于 Unix wchar_t,您可能需要 NSUTF32 编码系列,以及您选择的平台。
【讨论】:
iOS是基于Linux的,使用ARM arch CPU(即little-endian),所以,将NSString传递给C/C++代码使用NSUTF32LittleEndianStringEncoding
以下代码对我有用:(不确定这是否也适用于 wchar_t)
NSString *pStr = [NSString stringWithFormat:@"%S", GetTCHARString()];
【讨论】:
GetTCHARString 的内容,并且无法编译。