2009-05-21 6 views
4

Je n'arrive pas à trouver une bonne méthode pour convertir un NSString en wchar_t ... des conseils sur la façon de le faire? Tout ce que Apple expose sur la classe NSString est pour c-strings (char *) ou pour unichars, mais rien pour wchar *.NSString à wchar_t *?

Répondre

7
[urString cStringUsingEncoding:NSUTF16LittleEndianStringEncoding] 

wchar_t est spécifique au compilateur. En supposant que vous wan le Win32 wchar_t, alors UTF16 petite fin codée le fera. Pour Unix wchar_t vous pouvez avoir besoin de la famille de codage NSUTF32, avec votre plate-forme de choix.

+0

doc d'Apple pour '-cStringUsingEncoding:' dit: [* "UTF-16 et UTF-32 sont Les résultats de la transmission de ** NSUTF16StringEncoding **, NSUTF32StringEncoding, ** ou de l'une de leurs variantes ** sont indéfinis "*] (https: // developer, ne sont pas considérés comme des encodages de chaînes C et ne doivent pas être utilisés avec cette méthode. apple.com/documentation/foundation/nsstring/1408489-cstringusingencoding?language=objc). Cette réponse semble fausse. – Pang

0

code suivant a fonctionné pour moi: (ne sais pas si cela sera applicable pour wchar_t ainsi)

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

Il n'y a rien dans les documents à propos de 'GetTCHARString' et il ne compilera pas. – Todd