NSString到UTF8是错误的iOS

时间:2013-10-14 22:52:55

标签: ios encoding nsstring nsstringencoding

我正在尝试在UTF8中转换“á”。我可以发现UTF8中的“á”是“¡”。在Xcode中我写了这个:

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

它总是打印“√°”,这是错误的! 确实如果写了

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

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

我做错了什么?

谢谢

1 个答案:

答案 0 :(得分:0)

你没有做错任何事。只是%s说明符只打印出没有unicode感知的字符流。如果要检查litter是否包含正确的字符,请将其转换回NSString对象,然后再将其记录为NSLog。

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