2013-10-14 88 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