Mam problem z następującym kodem:NSLog niepoprawne kodowanie
NSString *[email protected]"你好";
char temp[200];
strcpy(temp, [strValue UTF8String]);
printf("%s", temp);
NSLog(@"%s", temp);
w pierwszej linii kodów, dwóch chińskich znaków są podwójnie cytowane. Problemem jest funkcja printf, która poprawnie wyświetla chińskie znaki, ale NSLog nie.
Dziękuję wszystkim. Wymyśliłem rozwiązanie tego problemu. Fundament używa domyślnie UTF-16, więc aby użyć NSLog do wyprowadzenia ciągu c w przykładzie, muszę użyć cStringUsingEncoding, aby pobrać ciąg znaków UTF-16 c i użyć% S, aby zastąpić% s.
NSString *[email protected]"你好";
char temp[200];
strcpy(temp, [strValue UTF8String]);
printf("%s", temp);
strcpy(temp, [strValue cStringUsingEncoding:NSUTF16LittleEndianStringEncoding]);
NSLog(@"%S", temp);
Dobre podejście :-) czy będzie działać z odstępami między '#' i 'define'? Być może pomocny może być również jeden wiersz objaśnień, ponieważ linia kodu jest bardzo długa i dlatego nie jest dobrze czytelna. –
@peter_the_oak Praca idealna dla mnie – Gank