2010-11-10 54 views
0

在这里问了一个关于同样问题的问题:Silly problem with UTF8但有些搞砸的东西,所以我做一个新的问题,并尝试它更干净。Objective-C:瑞典字符问题ÅÄÖ

如果我再问一次,我会道歉。

我一直试图让这个工作,但不能得到我想要的结果。我已经尝试了我以前的帖子中的建议,但仍然无法使用它。正如你所理解的,我对这件事很感兴趣,并且真的试着去阅读它。

下面是这种情况:

  • 的NSMutableArray
  • 商店瑞典字符: “AAO”
  • 的NSLog阵列
  • 输出是不正确的

代码:

NSMutableArray * myArray = [[NSMutableArray alloc] init];
[myArray addObject:@“===”];
[myArray addObject:@“ÅÄÖ”];
[myArray addObject:@“===”];
NSLog(@“myArray:%@”,myArray);

输出I得到的是:

2010-11-10 21:20:17.826 nsmutablearray_test [2976:207] myArray的:(
“===”,
“\ U00c5 \ U00c4 \ U00d6" ,
“===”

我期待的输出为:

“===”,
“AAO”,
“===”

因为我已经测试了各种东西这个(简单的)问题,我会很感激,如果有人很高兴能告诉我解决这个问题的代码?

问候

回答

2

下面是你一个简单的解决方案:

NSMutableArray *myArray = [[NSMutableArray alloc] init]; 
[myArray addObject: @"==="]; 
[myArray addObject: @"ÅÄÖ"]; 
[myArray addObject: @"==="]; 
NSLog(@"myArray: %@", myArray); 

for (NSString *string in myArray) { 
    NSLog(@"%@", string); 
} 

输出:

Swedish[3453:a0f] === 
Swedish[3453:a0f] ÅÄÖ 
Swedish[3453:a0f] === 
3

\U00c5Å Unicode码,所以在技术上,该输出是正确的。字符串在内存中仍然是一样的,只是NSLog不会输出它所期望的。但它仍然是相同的字符串。

0

这只是NSLog如何处理UTF8的问题,如果我没有记错的话。尝试将描述存储到NSString中,然后记录。

无论哪种方式,数据是正确的,这纯粹是一个NSLog问题。