2012-01-03 3 views
2

Я хочу преобразовать значение nsstring в const char *.конвертировать NSString в const char *

NSString *s = @"יככעימבבגיננימ"; //Hebrew characters 
const char *t = [s cStringUsingEncoding:NSUTF8StringEncoding]; 
NSLog(@"\n str = %s",t); 

консоль показала, как это "◊ô◊õ◊õ◊ ¢ ◊ô◊û◊ë◊ë◊í◊ô◊ † ◊ † ◊ô◊û".

Как получить фактическое значение NSString в const char *?

Спасибо, Loganathan

+1

У вас уже есть фактическое значение NSString как UTF-8 массив символов и проблемы, связанные с NSLog вывод, см. http://stackoverflow.com/a/722984/1101537 – alexander

ответ

6

Это просто потому, что %s в NSLog означает ASCII строку (равнинно-C 8 битовых строк, чтобы быть точным), не UTF8.

Что о попытке следующее ?:

NSString *s = @"יככעימבבגיננימ"; //Hebrew characters 
NSLog(@"\n str = %@",s); 

Вы можете выйти из массива UTF16 также:

const wchar_t *t = (const wchar_t*)[s cStringUsingEncoding:NSUTF16StringEncoding]; 
NSLog(@"\n str2 = %S",t); 
+0

Nice. Очень полезно знать ... –

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