2009-05-21 94 views
4

我似乎無法找到一個很好的內置方式將NSString轉換爲wchar_t ...有關如何執行此操作的任何提示? Apple在NSString類中公開的任何內容都是針對c-string(char *)或unichars,但對於wchar *則沒有。NSString to wchar_t *?

回答

7
[urString cStringUsingEncoding:NSUTF16LittleEndianStringEncoding] 

wchar_t是編譯器特定的。假設你使用Win32 wchar_t,那麼編碼UTF16的小碼就可以了。對於Unix wchar_t,您可能需要NSUTF32編碼系列,並選擇您的平臺選擇。

+0

蘋果的doc爲`-cStringUsingEncoding:`說:*「UTF-16和UTF-32不認爲是C字符串編碼,不應該與此方法一起使用 - 傳遞** NSUTF16StringEncoding **,NSUTF32StringEncoding **,或其任何變體**的結果未定義爲「*](https:// developer。 apple.com/documentation/foundation/nsstring/1408489-cstringusingencoding?language=objc)。這個答案看起來不對。 – Pang 2017-08-18 03:35:23

0

下面的代碼爲我工作:(不知道這將是適用於wchar_t的爲好)

NSString *pStr = [NSString stringWithFormat:@"%S", GetTCHARString()]; 
+0

關於`GetTCHARString`的文檔沒有任何內容,它不會被編譯。 – Todd 2017-11-24 13:18:35