У меня возникла проблема со следующим кодом:
NSString *[email protected]"你好";
char temp[200];
strcpy(temp, [strValue UTF8String]);
printf("%s", temp);
NSLog(@"%s", temp);
в первой строке кодов два китайских символа заключаются в двойные кавычки. Проблема заключается в том, что функция printf может отображать китайские символы должным образом, но NSLog не может.
Спасибо всем. Я решил решить эту проблему. Foundation использует UTF-16 по умолчанию, поэтому, чтобы использовать NSLog для вывода строки c в примере, я должен использовать cStringUsingEncoding для получения строки UTF-16 c и использовать% S для замены% s.
NSString *[email protected]"你好";
char temp[200];
strcpy(temp, [strValue UTF8String]);
printf("%s", temp);
strcpy(temp, [strValue cStringUsingEncoding:NSUTF16LittleEndianStringEncoding]);
NSLog(@"%S", temp);