2009-05-21 4 views
4

Я не могу найти хороший встроенный способ конвертировать NSString в wchar_t ... любые советы о том, как это сделать? Все, что Apple предоставляет в классе NSString, предназначено для c-строк (char *) или для unichars, но ничего для wchar *.NSString to wchar_t *?

ответ

7
[urString cStringUsingEncoding:NSUTF16LittleEndianStringEncoding] 

wchar_t - компилятор специфический. Предполагая, что вы заработали Win32 wchar_t, тогда UTF16 немного закончит кодирование, это сделает. Для Unix wchar_t вам может понадобиться семейство кодировок NSUTF32, с вашей платформой выбора endianess.

+0

документ от Apple для '-cStringUsingEncoding:' говорит: [* "UTF-16 и UTF-32 являются не считаются строковыми кодировками C и не должны использоваться с этим методом - результаты передачи ** NSUTF16StringEncoding **, NSUTF32StringEncoding, ** или любой из их вариантов ** не определены "*] (https: // разработчик. apple.com/documentation/foundation/nsstring/1408489-cstringusingencoding?language=objc). Этот ответ кажется неправильным. – Pang

0

После код работал для меня: (не уверен, если это будет применимо для wchar_t а)

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

В документах о 'GetTCHARString' ничего нет, и он не будет компилироваться. – Todd

 Смежные вопросы

  • Нет связанных вопросов^_^