2009-05-21 13 views
4

NSStringをwchar_tに変換する良い組み込みの方法が見つからないようです...これを行う方法に関するヒント? AppleがNSStringクラスで公開するものは、c-strings(char *)またはunicharsですが、wchar *は何もありません。NSStringからwchar_t *?

答えて

7
[urString cStringUsingEncoding:NSUTF16LittleEndianStringEncoding] 

wchar_tはコンパイラに固有です。あなたがWin32 wchar_tを失うと仮定すると、エンコードされたUTF16の小さなエンディングがそれを行います。 Unix wchar_tの場合、選択したエンディアンのプラットフォームでNSUTF32エンコーディングファミリーが必要な場合があります。次のコード

+0

アップルのdoc:'言う:[* "UTF-16とUTF-32は、 Cの文字列エンコーディングと見なされていないので、** NSUTF16StringEncoding **、NSUTF32StringEncoding、**またはそれらのバリアントのいずれかを渡した結果は未定義です* *(https:// developer。 apple.com/documentation/foundation/nsstring/1408489-cstringusingencoding?language=objc)。この答えは間違っているようです。 – Pang

0

が私の仕事:(これは、同様のwchar_tのために適用されますかどうかわからない)-cStringUsingEncoding `ため

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

'GetTCHARString'に関するドキュメントには何もないので、コンパイルされません。 – Todd