2013-10-14 70 views
0

我想在UTF8中轉換「á」。我可以發現UTF8中的「á」是「á」。在Xcode中我寫的:NSString到UTF8是錯誤的iOS

const char * litter = [@"á" UTF8String]; 
NSLog(@"%s",litter); 

,它總是打印「√°」,這是錯誤的! 事實上,如果寫

const char * litter = [@"áéíóú" UTF8String]; 
NSLog(@"%s",litter); 

它打印出:√°√©√≠√≥√∫

我在做什麼錯?

謝謝

回答

0

你沒有做錯任何事。它只是%s說明符只是打印出沒有unicode意識的字符流。如果你想檢查垃圾是否包含正確的字符,將其轉換回NSString對象,然後NSLog它。

const char * litter = [@"á" UTF8String]; 
NSLog(@"%@",[NSString stringWithUTF8String:litter]); 
+0

但在這種情況下,它打印:「A」不是「á」 – Georgevik

+0

你需要你所看到的你得到什麼區別。你的聲明UTF8中的「á」是「Ã」「是絕對的廢話。 UTF8中的「á」是C3 A1。您似乎期望看到帶有代碼點U + 00C3和U + 00A1的字符串。這不會發生。 – gnasher729