Ios NSString数组中的重音字符编码不正确

Ios NSString数组中的重音字符编码不正确,ios,encoding,nsstring,nsmutablearray,Ios,Encoding,Nsstring,Nsmutablearray,?我正在从一个列表中构建一个NSMutableNSString数组,其中一些字母带有重音(土耳其语)。我已经能够编码成一个NSString,并记录结果。但当我将该NSString添加到NSMutableArray时,编码是不正确的 这项工作: NSString* temp = [[NSString alloc] init]; char *str = "üç"; temp = [NSString stringWithUTF8String:"üç"]; NSLog(@"str: %@",temp)

?我正在从一个列表中构建一个NSMutableNSString数组,其中一些字母带有重音(土耳其语)。我已经能够编码成一个NSString,并记录结果。但当我将该NSString添加到NSMutableArray时,编码是不正确的

这项工作:

NSString* temp = [[NSString alloc] init];
char *str = "üç"; 
temp = [NSString stringWithUTF8String:"üç"];
NSLog(@"str: %@",temp);
记录的输出:

2012-06-09 09:09:18.398 Fluent[1821:f803] str: üç
当我尝试将其添加到NSMutableArray时,如下所示:

ones = [NSArray arrayWithObjects:@"",@"bir",@"iki",temp,@"dört",@"beş",@"altı",@"yedi",@"sekiz",@"dokuz",nil];
NSLog(@"ones: %@",ones);    
它丢失了编码:

2012-06-09 09:09:18.399 Fluent[1821:f803] ones: (
"",
bir,
iki,
"\U00fc\U00e7",
"d\U00f6rt",
"be\U015f",
"alt\U0131",
yedi,
sekiz,
dokuz)
有什么办法吗?我在这方面读到的文章似乎都集中在HTTP传输上


我想要一种更简单的方法,例如,如果有必要,对C字符串进行编码,然后在数组中按空格进行解压。

这不会丢失编码,请尝试将nsarray中的字符串添加到UILabel或UIExtField中,应该是正确的
这种写入Unicode表示的行为只有在您记录字符串没有被错误编码时才会在控制台中发生。您看到的是一个将完整数组写入日志的工件。在本例中,数组首先转换为属性列表格式,然后写入日志

如果创建一个循环并将每个元素分别写入日志,您将看到一切正常:

NSUInteger count = [ones count];
for (NSUInteger i = 0; i < count; i++) {
    NSLog(@"element %d: %@", i, [ones objectAtIndex: i]);
}
nsuiger count=[one count];
对于(整数i=0;i
你是对的。事实上,我根本不需要
stringWithUTF8String
编码,通常的@可以很好地工作。谢谢。输出:
element 3:üçelement 4:dört
你是对的:它们确实正确地显示在UILabel中。谢谢不客气:)如果答案有用,请别忘了接受:)